问题3.5 求解AX=?,BX=?
这个问题3.5我没有看懂每步执行后,AX的值是多少?mov ax,123b
mov ds,ax
mov ax,0
add ax, AX=?
add ax, AX=?
add ax, AX=?
我在DEBUG 里执行后,内存段 123b:0里的值 为: B8 3B 12 8E D8 B8 00
我是在段-a 123b:0 写入的程序
123b:0000 mov ax,123b
. ....
用-d 查询的值 为什么是: B8 3B 12 8E D8 B8 00 B8 3B 12 是数据形式,如果是代码格式就会被翻译成
mov ax,123B
所以以下就是结果
add ax, AX=3BB8
add ax, AX=3BB8+8E12=CACA
add ax, AX=CACA+B8D8=83A2 计算机内存里能存储的都是二进制数据,并不能真的存放mov ax,123bh 这种文本,
写好的这些汇编指令都会经过编译链接汇编成机器指令就是类似B8 3B 12这种,
B8 3B 12在机器的角度理解就是mov ax ,123bh的意思
在debug里,你可以用-u来将机器指令翻译成对应的汇编指令 BngThea 发表于 2017-12-13 14:27
B8 3B 12 是数据形式,如果是代码格式就会被翻译成
mov ax,123B
这下,明白了,把指令输入DEBUG后,我以为是电脑自动计算出的 B8 3B 12 8E D8 B8...,、
也就是说被译成机器语言了,这样理解对吗?
这两例子的意思,就是为了说字型数据和字节型数据 的区别对吗?
感谢楼主 Huang1234 发表于 2017-12-13 14:38
这下,明白了,把指令输入DEBUG后,我以为是电脑自动计算出的 B8 3B 12 8E D8 B8...,、
也就是说被译成 ...
对,是这个意思 linxingcs 发表于 2017-12-13 14:37
计算机内存里能存储的都是二进制数据,并不能真的存放mov ax,123bh 这种文本,
写好的这些汇编指令都会经 ...
谢谢楼主解答,在没有输入DEBUG之前,我们能算出
mov ax,123b
mov ds,ax
mov ax,0
add ax, AX=?
add ax, AX=?
add ax, AX=? Huang1234 发表于 2017-12-13 14:43
谢谢楼主解答,在没有输入DEBUG之前,我们能算出
mov ax,123b
mov ds,ax
我已经通过DEBUG 解出
DS:0000=B8 AX=12B8
DS:0001=3B AX=123B
DS:0002=12 AX=1212
谢谢各位的解答
页:
[1]