agittarius 发表于 2012-3-30 23:06:55

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的值,谁能告诉我这两个有什么区别吗?

agittarius 发表于 2012-3-30 23:33:23

自己顶起来……。

agittarius 发表于 2012-3-31 10:51:22

自己解决了…… code和CS是一样的,因为前面用ASSUME CS:CODE将两个连接起来了……

wAterLoo 发表于 2012-3-31 11:56:22

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]
查看完整版本: 0基础学汇编:实验4:一个问题?