xiaoone 发表于 2016-12-26 16:21:14

汇编语言视频教程025第五章 [BX]和loop指令03

本帖最后由 xiaoone 于 2016-12-26 16:22 编辑

视频中,讲5.3节-程序5.3的时候,小甲鱼讲
mov ax,

mov al,
mov ah, 0
是没有区别的,认为书作者是多此一举。

小弟尝试运行了一遍,发现其实是有区别的:

从我的机器来看:


初始:ffff6 的值为 31,ffff7的值为2F。

一、首先,依照教材
mov al,
mov ah, 0
结果如下:


dx=0093

二、按mov ax,来,
运行结果为:

dx=8D93
(新人限制,传不了图了)


为什么有区别呢?
我们回到最开始看就明白了,初始:ffff6 的值为 31,ffff7的值为2F
如果按教材来运行,
assume cs:code
code segment

start:mov ax, 0ffffh
                        mov ds, ax
                        mov bx, 6
                        mov al,
                        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,来运行,
assume cs:code
code segment

start:mov ax, 0ffffh
                        mov ds, ax
                        mov bx, 6
                        mov ax,
                        mov dx, 0
                        
                        mov cx, 3
                s:add dx, ax
                        loop s
                        
      
      
                        mov ax,4c00h
                        int 21h
      
      code ends
end start

mov ax, 后,(al)=31,(ah)=2F。循环3次,就相当于2F31*3=8D93。dx=8D93




ccizcciz 发表于 2016-12-26 20:28:26

支持支持支持支持支持
页: [1]
查看完整版本: 汇编语言视频教程025第五章 [BX]和loop指令03