【发布时间】:2020-07-28 16:10:19
【问题描述】:
我试图接受用户输入,小写并在汇编中转换为大写。 我在 NASM 中编译了它,但它给出了一个错误。
IDEAL
MODEL small;
STACK 256
DATASEG
prompt db 13,10,"PLEASE ENTER A CHARACTER IN THE ALPHABET.$"
CODESEG
Start:
mov ax,@DATA
mov dx,ax
Mainloop:
mov ah,9
mov dx, offset prompt
int 21h
mov ah,0
int 16h
mov ah,02h
mov dl,"ah+32"
int 21h
jmp Mainloop
END Start
【问题讨论】:
-
NASM 报错?我希望如此,那不是 NASM 语法!这些是 MASM 指令。包括实际的错误消息以使其成为minimal reproducible example。
mov dl,"ah+32"不是语法错误,但它不能满足您的要求。"ah+32"是大数字常量,使用 ASCII 文字编写 -
@Peter Cordes:“理想”模式属于 Turbo Assembler,所以我认为这就是它的目的。
-
@ecm:谢谢,很好,我只看到了
end start和offset,并没有仔细看。 MASM 和 TASM 属于同一个 Intel 语法家族,所以我仍然可以说它是 MASM 系列语法:P
标签: assembly user-input nasm x86-16 uppercase