0基础学汇编:实验4:一个问题?
3) 下面的程序的功能是将“mov ax,4c00h”之前的指令复制到内存0:200处,补全程序。上机调试,跟踪运行结果。assume cs:code
code segment
mov ax,code;code为所填写的数据
mov ds,ax
mov ax,0020h
mov es,ax
mov bx,0
mov cx,18h ;18h为所填写的数据
s: mov al,
mov es:,al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
小甲鱼在这里写的是:mov ax,code;code为所填写的数据
我写的是:mov ax,cs
这样能够写好像也没有问题,debug的时候mov ax,code传给ax的值也是cs的值,谁能告诉我这两个有什么区别吗? 自己顶起来……。 自己解决了…… code和CS是一样的,因为前面用ASSUME CS:CODE将两个连接起来了…… mov ax,code和 mov ax,cs 是有区别的
mov ax,cs 是2字节指令,mov ax,code 是3字节指令,
所以如果用mov ax,cs,则下面的
mov cx,18h ;18h为所填写的数据
就要改成 mov cx,17h
页:
[1]