|  | 
 
| 
1.编程,向内存0:200~0:23F依次传送数据0~63(3FH)。
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  
 assume cs:test
 test segment
 mov ax,20h
 mov ds,ax
 mov ax,0
 mov bx,0
 mov cx,63
 s:mov [bx],al
 inc al
 inc bx
 loop s
 mov ax,4c00h
 int 21h
 a ends
 end
 
 2.编程,向内存0:200~0:23F依次传送数据0~63(3FH),程序中只能使用9条指令,9条指令中包括“move ax,4c00h”和“int 21h”。
 
 assume cs:test
 test segment
 mov ax,20h
 mov ds,ax
 mov bx,0
 mov cx,63
 s:mov [bx],bl
 inc bx
 loop s
 mov ax,4c00h
 int 21h
 a ends
 end
 
 3.下面的程序的功能是将“mov ax,4c00h”之前的指令复制到内存0:200处,补全程序。上机调试,跟踪运行结果。
 
 assume cs:code
 code segment
 mov ax,cs
 mov ds,ax
 mov ax,0020h
 mov es,ax
 mov bx,0
 mov cx,17
 s:mov al,[bx]
 mov es:[bx],al
 inc bx
 loop s
 mov ax,4c00h
 int 21h
 code ends
 end
 
 
 ---------------------------
 
 很多人不明白为什么cx的值为什么是17;其实原理很简单,因为是每行编程所占的内存字节;如果有朋友不懂得话,可以直接将代码拷贝上机测试;
 
 生成code.exe
 
 用debug进入code.exe,按u命令可以清晰的看到,代码里面所使用的字节;
 
 为什么是17呢?
 
 那是因为所需要执行的代码里面的内存字节就是17;
 
 而所执行的代码就是从【mov ax,cs】开始,一直到【loop s】,里面需要的字节就是17。
 
 不知道我这样解释大家能不能明白。
 
 | 
 |