任何人都可以帮我解决这个问题吗?运行时错误汇编中的非法指令
我需要创建一个asm程序,它将接受用户确定的名称,并询问用户他是否确定他输入的名称,然后用户将选择y/n
。如果用户输入y
,则程序将打印该消息,然后您可能是chris +用户姓氏,如果他输入n
,程序将跳回并再次询问姓氏。如果他输入的不是y
或n
,程序会跳回来询问“你确定吗?”
当我运行该程序时,我遇到了一个错误。这里是我的代码:
.model small
.stack 64h
.data
msg01 db 13, 10, "What is your surename?: ", "$"
msg02 db 13, 10, "Are you sure? y/n", "$"
msg03 db 13, 10, "Then you must be chris ", "$"
nameinput label byte
maxnamelen db 20
curnamelen db ?
namefield db 20 dup(?)
.code
start:
mov ax, @data
mov ds, ax
inputsurename:
mov ax, 09h
mov dx, offset msg01
int 21h
mov ah, 0ah
mov dx, offset nameinput
int 21h
mov bx, 0
mov bl, curnamelen
mov namefield [bx], "$"
inputchoice:
mov ax, 09h
mov dx, offset msg02
int 21h
mov ah, 1
int 21h
cmp al, 'n'
je inputsurename
cmp al, 'y'
jne inputchoice
printname:
mov ah, 09h
mov dx, offset msg03
int 21h
mov ah, 09h
mov dx, offset namefield
int 21h
mov ah, 4ch
int 21h
end start
您的问题缺少一些重要信息。例如,你在运行这个程序是什么? DOSBox中?一台有DOS的旧电脑..?当你遇到错误时,你提供了什么样的输入,如果有的话? – Michael