回 帖 发 新 帖 刷新版面

主题:[讨论]请问PUSHA在MASM5.0下可以使用么?

stack_seg segment stack
    stack dw 32 dup(?)
stack_seg ends

data segment
    
    buffer  db 32,0, 32 dup(?)
        db ?
    str_0 db 'You have entered ','$'
    str_1 db ' chars'
data ends

code segment
    assume cs:code,ds:data,ss:stack_seg
    
   main proc far
    mov ax,data
    mov ds,ax
    
    mov ax,stack_seg
    mov ss,ax

    lea dx,str_0
    mov ah,9
    int 21h

    pusha;出错的地方

    call Newline

    popa;出错的地方

    ;lea dx,str_1
    ;mov ah,9
    ;int 21h

    mov ah,4ch
    int 21h

    ret

main endp
    
    Newline proc near
        
        mov dl,0ah
        mov ah,2
        int 21h

        mov dl,0dh
        mov ah,2
        int 21h
        ret
    Newline endp

    
    
code ends
end main
提示出错:Expected:instruction or directive
可是在IBM-PC汇编语言程序设计(沈美命/温冬婵)中提到了这两个指令啊
期待高手解答

回复列表 (共2个回复)

沙发

这个问题与masm5.0无关,pusha、popa是286开始才支持的指令,8086/8088不支持。在你代码第一句加上.286就可以支持pusha、popa了。

板凳

谢谢指点啊……

我来回复

您尚未登录,请登录后再回复。点此登录或注册