实验四

实验一:

assume cs:code
code segment
             mov ax,0b800h
             mov ds,ax
             mov bx,07b8h
             mov cx,10h
      
             mov cx,16

a:          mov ax,0403h
             mov [bx],ax
             inc bx
             inc bx
             loop a
             
             mov ax,4c00h
             int 21h

code ends
end
             
             

 

将0403h修改为0441h

练习二:

内存0:200˜0:23f依次传送数据0~63(3fh):

assume cs:code
code segment
        mov ax,0
        mov ds,ax
        mov bx,0200h

        mov cx,40h

a:     mov al,0
        mov [bx],al
        inc al
        inc bx
        loop a

        mov ax,4c00h
        int 21h
code ends
end
             

反汇编

 调试,查看:

 

 

 练习三

assume cs:code
code segment
        mov ax,cs
        mov ds,ax
        mov ax,0020h
        mov es,ax
        mov bx,0
        mov cx,17h

a:      mov al,[bx]
        mov es:[bx],al
        inc bx
        loop a

        mov ax,4c00h
        int 21h
code ends
end

 

未知代码长度,先给cx赋值为0

 loop后一个命令的偏移地址为0017,用g命令时应该为17,即给cx赋值应为17h

 

 

总结:

学会一些简单使用loop循环的地方

未知指令段长度即循环执行次数cx值,调试时应先反汇编查看偏移地址

问题:还是不大理解[bx],只知道编译器编译时[bx]和bx两者不同,loop循环执行次数的查看还存在不理解的地方,

loop与[ bx ]的结合使用未完全理解

 

posted @ 2018-11-19 20:42  许昊  阅读(121)  评论(0编辑  收藏  举报