+ -
当前位置:首页 → 问答吧 → 王爽汇编语言 第六章实验(5)循环中为什么不能用ax

王爽汇编语言 第六章实验(5)循环中为什么不能用ax

时间:2011-12-06

来源:互联网

Delphi(Pascal) code
; 程序5.6  用PUSH 指令将a段中word数据逆向存到B段中
assume cs:code

a segment 
    dw 1,2,3,4,5,6,7,8
a ends

b segment
    dw 0,0,0,0,0,0,0,0
b ends

code segment
    start:
        mov ax,b
        mov ss,ax
        mov sp,16

        mov ax,a
        mov ds,ax

        mov bx,0        ;这里不能用ax?????????????
        mov cx,8
        s:
        push [bx]         ;这里不能用ax?????????????
        add bx,2          ;这里不能用ax?????????????
        loop s
        
        mov ax,4c00H
        int 21H
code ends
end start



把有标志的地方的 bx 改为 ax 编译的时候有1个错误 为什么?

作者: gourideriben   发布时间: 2011-12-06

引用楼主 gourideriben 的回复:
Delphi(Pascal) code
; 程序5.6 用PUSH 指令将a段中word数据逆向存到B段中
assume cs:code

a segment
dw 1,2,3,4,5,6,7,8
a ends

b segment
dw 0,0,0,0,0,0,0,0
b ends

code segment
start:
……

核心的是这一句不能用ax替换bx:push [bx]
因为bx可以用来间接寻址,但ax不行,ax没那功能。
 

作者: gsy999   发布时间: 2011-12-06