实验四第三小题
本帖最后由 努力学习 于 2012-6-13 20:19 编辑题目:下面的程序的功能是将"mov ax,4c00h"之前的指令复制到内存0:200处,补全代码。
代码: assume cs:code
code segment
mov ax,____
mov ds,ax
mov ax,0020h
mov es,ax
mov bx,0
mov cx,_____
s: mov al,
mov es:,al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
虽然看了答案和解析,可还是不懂,请各位鱼友解释解释,谢谢啦
努力学习 发表于 2012-6-14 21:54 static/image/common/back.gif
对呀,问题就是你这指令所占的字节的大小怎么计算出来,总不可能人工数出来吧
这个计算有多种方法,如果你熟悉每个指令占内存的大小,可以人工计算,还有你可以先随机赋值一个数给cx,再利用DEBUG的U命令查看内存大小,还有一种就是你可以利用计算机自己计算,后面你会学到的,代码如下:
assume cs:code
code segment
s0: mov ax,cx
mov ds,ax
mov ax,0020h
mov es,ax
mov bx,0
mov cx,offset s1 - offset s0
s: mov al,
mov es:,al
inc bx
loop s
s1: mov ax,4c00h
int 21h
code ends
end 第一个空是mov ax,cs意思是将你code segment这个代码段的段地址赋值于ds中,第二个空好像是mov cx,10h意思是将从mov ax,cs到loop s这些指令在内存中占的字节数的大小赋值在cx中,再在后面的loop指令中循环cx次,每次复制一个字节到0:200h处。 Yara 发表于 2012-6-13 12:28 static/image/common/back.gif
第一个空是mov ax,cs意思是将你code segment这个代码段的段地址赋值于ds中,第二个空好像是mov cx,10h意思 ...
第二个空还是没理解,答案里好像是先填一个较大的数,然后再debug查看出cx的值,然后再减去mov ax,4c00h 和 int 21 所占的字节数5然后答案好像是18这个答案的解释不理解 努力学习 发表于 2012-6-13 20:21 static/image/common/back.gif
第二个空还是没理解,答案里好像是先填一个较大的数,然后再debug查看出cx的值,然后再减去mov ax,4c00h...
s: mov al,
mov es:,al
inc bx
loop s
这上面的意思是把ds:内存单元上的值赋给es:中,而且是以al(占1个字节)为中介,那么loop指令就是要循环多少次,才可以把你从mov ax,cs到mov ax,4c00h的指令在内存中占字节数复制到0020h:0处。所以说mov cx,10h就是循环的次数,取决于你指令所占的字节的大小而已 Yara 发表于 2012-6-14 12:40 static/image/common/back.gif
s: mov al,
mov es:,al
inc bx
对呀,问题就是你这指令所占的字节的大小怎么计算出来,总不可能人工数出来吧 晕死,我在另一个贴中给你回复了!!!{:5_90:} 骑着蟑螂闯红灯 发表于 2012-6-22 08:48 static/image/common/back.gif
晕死,我在另一个贴中给你回复了!!!
哦,说说看你的见解吧{:5_92:} 努力学习 发表于 2012-6-22 19:50 static/image/common/back.gif
哦,说说看你的见解吧
你的帖子发表已经很长时间了,估计你已经弄懂了,既然交流论坛,作为初学者我也谈谈我的理解(我视频才看到第六章,你的困惑我也遇到了)
注意:①内存中的数据改变会影响相应的代码(指令)变化。
②在debug中cx默认显示当前指令的长度
③code即为cs的值
要想把“mov ax,4c00H”指令复制到内存0:200处,只需把每条指令所对应的内存数据赋到0:200处即可。
18H怎么来的呢???“mov ax,4c00H和int21H”的总长度为5H,1DH-5H=18H即为剩余指令长度(即为题目中要我们复制指令的长度)。
接下只需按照我提到的再去看程序 应该能看懂!!!
我是初学者难免有错,希望大家能指出错误!!!
谢谢!!!
骑着蟑螂闯红灯 发表于 2012-6-22 22:56 static/image/common/back.gif
你的帖子发表已经很长时间了,估计你已经弄懂了,既然交流论坛,作为初学者我也谈谈我的理解(我视频才看 ...
{:5_106:},恩恩 :L 看得回复多啦越看越迷糊
页:
[1]