将下面3条指令写入从2000:0开始的内存单元中,利用这3条指令计算2的8次方。
mov ax, 1
add ax,ax
jmp 2000:0003
2的8次方是256。可是用r命令将CS:IP指向2000:0000之后用t命令执行却无法得出2的8次方。add是相加啊。怎么会得出乘法的结果? 展开
需要DOSBox0.74(noconsole)
1、将下面3条指令写入2000:0开始的内存单元中,利用这3条指令计算2的8次方。
2、movax,1
addax,ad
jmp2000:3
扩展资料:
1、DEBUG把所有数据都作为字节序列处理。因此它可以读任何类型的文件。DEBUG可以识别两种数据:十六进制数据和ASCⅡ码字符。它的显示格式是各个字节的十六进制值以及值在32与126之间的字节的相应ASCⅡ码字符。
2、在DEBUG中输入数据有两种方法:提示方法和非提示方法。在用提示方法时,用户可以输入要求输入数据的命令,后跟数据所要输入的地址。然后用户就可以看到该地址中已有内容及一个冒号提示符。此时用户可以在提示符下输入一个新的值或者按下回车键或CTRL+C回到短横(-)提示符。在运用非提示方法时,用户可以输入要输入数据的内存地址以及要输入的字节。但与使用字处理程序或正文编辑程序时不一样,在使用DEBUG时,用户不能直接移动光标到一入口点输入或修改数据,而要一次输入一个或几个字节。
3、在使用DEBUG时可以只涉及内存中的数据,从而一般都要指定所要处理的内存地址,地址的输入格式是:[段地址]:[位移]。如果没有输入地址,DEBUG将假定为当前内存段,从位于地址100H的字节开始。前100H字节保留给程序段前缀使用,这一专用区域用于建立DOS与程序之间的联系。DEBUG总是用四位十六进制数表示地址。用两位数表示十六进制数据。