【发布时间】:2017-09-23 16:39:34
【问题描述】:
自从我停止使用某些代码语言以来已经有一段时间了,自从几天前我在学校开始学习汇编以来,我想开始了解一些代码行工作背后的一些逻辑。
实际上,我尝试的是两个变量之间的简单 ADD 操作。我使用 emu8086 来模拟我的代码,现在我将向您展示为什么我无法理解它。
代码如下:
stack segment
dw 128 dup(0)
ends
data segment
x DB 3
y DB 5
r DB 0
ends
code segment
mov ah,x
mov al,y
add ah,al
mov r,ah
ends
现在,我刚刚初始化了三个变量,其中两个是 8 位的,我想将第一个添加到第二个。
问题如下:当我模拟代码时,我一步一步去看看会发生什么,第一步应该是AH=03,但它似乎输出了CDh(那不是我的x var)和我不明白为什么。 AL 也一样。
我的意思是,为什么我在 AH 和 AL 寄存器中写入了其他内容,而不是 x 和 y 变量?
【问题讨论】:
-
您可能忘记设置
DS指向您的数据段。 -
抱歉,请问,我该怎么做?
标签: variables assembly add x86-16 emu8086