【发布时间】:2021-06-26 20:34:03
【问题描述】:
我正在尝试创建一个程序,用他们的名字向用户打招呼。用户在提示后输入他们的姓名,并与他们的姓名一起受到欢迎。我已经尝试过使用此代码,但它失败并在第 21 行抛出错误。
错误消息指出: (21) 错误参数:LEA Dx,name (21) 十六进制可能没有零前缀;或没有“h”后缀;或错误的地址;或未定义的变量:名称
这是代码
.MODEL SMALL
.STACK 100
.DATA
msg db "Hello! Please enter your name:$"
newline db 13,10,'$'
greeting db "Wellcome!$"
name db 80, 0, 78 DUP('$')
.CODE
main PROC
; Prompt
MOV Ax,@DATA
MOV Ds,Ax
LEA Dx,msg
MOV Ah,09h
INT 21h
; Input
LEA Dx,name (throws error)
MOV AH,0AH
INT 21h
; Check if ENTER is pressed
CMP Al,13
JE Display
; Newline
LEA Dx,newline
MOV Ah,09h
INT 21h
; Print Greeting
Display: MOV AH,09h
LEA Dx,name+2
;MOV Dl,Al
INT 21H
Exit:
MOV Ah,4Ch
INT 21h
main ENDP
END main
【问题讨论】:
标签: string assembly input keyboard emu8086