|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 xiaoone 于 2016-12-26 16:22 编辑
视频中,讲5.3节-程序5.3的时候,小甲鱼讲
mov ax, [bx]
和
mov al, [bx]
mov ah, 0
是没有区别的,认为书作者是多此一举。
小弟尝试运行了一遍,发现其实是有区别的:
从我的机器来看:
初始内存数据
初始:ffff6 的值为 31,ffff7的值为2F。
一、首先,依照教材
mov al, [bx]
mov ah, 0
结果如下:
教材
dx=0093
二、按mov ax,[bx]来,
运行结果为:
dx=8D93
(新人限制,传不了图了)
为什么有区别呢?
我们回到最开始看就明白了,初始:ffff6 的值为 31,ffff7的值为2F
如果按教材来运行,
assume cs:code
code segment
start:mov ax, 0ffffh
mov ds, ax
mov bx, 6
mov al, [bx]
mov ah, 0
mov dx, 0
mov cx, 3
s:add dx, ax
loop s
mov ax,4c00h
int 21h
code ends
end start
(al)=31,(ah)=00,循环3次,dx=0091h。
如果按mov ax,[bx]来运行,
assume cs:code
code segment
start:mov ax, 0ffffh
mov ds, ax
mov bx, 6
mov ax, [bx]
mov dx, 0
mov cx, 3
s:add dx, ax
loop s
mov ax,4c00h
int 21h
code ends
end start
mov ax, [bx]后,(al)=31,(ah)=2F。循环3次,就相当于2F31*3=8D93。dx=8D93
|
|