今天看王爽大叔的《汇编语言(第二版)》,第五章,实验4,第三题,纠结了...

 
第一个空是非常无脑的,内存中的代码段寄存器是CS,只要用心看书的人都应该知道。不过第二题就无语了吧,这么长串的程序到底是多少字节嘞?
 
经过一番查找,在爽叔的汇编官方论坛找到了一个解决方案。经过测试的确不错,现在分享于大家,也做自己的一个学习记录。
 
首先明确,这个程序的目的是把"mov ax,4c00h"之前的指令复制到内存0:200处。那么肯定的,指令是存放与CS段内(此处写为CODE也是对的,因为都指向一个区域)的,同时我们也必须知道这些要复制的内容的总字节数才能进行操作。
 
那么怎样得到这段代码的字节数呢?我们姑且将所空缺处填上0000H以占取空间,ctrl+s--->masm--->link--->debug--->...
 
(关键操作开始)  在debug里输入-r指令,此时注意观察CX的值,这段程序的字节数就是CX的值。
 
 
 
此方法对于简单的汇编都适用,若只需要取某几段指令的字节数,则减去相应不用指令的字节数就OK。在此再啰嗦一句,如何知道不需要的指令的字节数呢?还是debug模式下,输入-u指令,看第二列那一堆机器码,每2个字符为1字节。数去吧~嘿嘿