gnim2600 发表于 2014-6-9 12:23:12

第五章 [bx]和loop指令03 中代码的问题

在甲鱼大大的代码中,他将原代码为:
assume cs:code

code segment

        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


改为了:

assume cs:code

code segment

        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


这样程序虽然可以运行,但是在后来的调试中,AX寄存器中的值是2f31h,这和原书中的意思似乎不符。原书中,ffff:0006h的内存单元是一个字节。那么AX中的值,在高位ah中应该是00h才对。所以原书中al和ah需要分开赋值,而不能合为一步。

不知道我以上说的对不对?

xiaosawanjava 发表于 2014-6-9 17:36:53

是在说什么?
页: [1]
查看完整版本: 第五章 [bx]和loop指令03 中代码的问题