我正在尝试创建一个程序,用他们的名字来问候用户。用户在提示后输入他们的名字,然后他们就和他们的名字沿着被问候了。我已经尝试过使用这个代码,但是它失败了,并在第21行抛出错误。
错误消息指出:(21)参数错误:莱亚Dx,名称(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
2条答案
按热度按时间6jjcrrmo1#
name db 80, 0, 78 DUP('$')
此外,还应删除损坏
; Print Greeting
中DX的指令MOV Dl,Al
。b4wnujal2#
试试这个。name不被接受使用name1