|  | 
 
| 
第(2)题要求用9条指令完成“向内存 0:200-0:23f 依次传送数据 0-63(3EFH)”,答案给出如下:
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  assume cs:code
 code segment
 mov ax,0020h
 mov ds,ax
 mov bl,0
 mov cx,40h
 s: mov [bx],bl
 inc bl
 
 loop s
 
 mov ax,4c00h
 int 21h
 
 code ends
 end
 为什么第三行指令中是mov bl,0,而不是mov bx,0?如果是前者的话,岂不是bx的高八位没有被定义为0?那么进入循环后mov [bx],bl中的bx岂不是有可能不为0,从而导致传送的数据不是从0:200(0200:0)开始保存?
 比如:假设初始状态给bx的值为1111,经过mov bl,0指令后,bx变为1100,再执行s: mov [bx],bl指令,此时的意思应该为把bl中的值存到0200:1100单元的内存中去,而不是按题意说的存到0200:0000单元的内存中去!因此鄙人觉得第三条指令应为:mov bx,0。求大虾指点!!!
 | 
 |