我正在尝试在我的代码中显示回车符和换行符,但它不起作用。如果我将代码打印成字符串就可以了。需要帮助。提前谢谢。
一个16位DOS程序,从STDIN接收一个char,然后将其打印到; STDOUT
.MODEL small
.stack 100h
.data
char_prompt db 'Please input a character: ','$'
out_msg1 db 'Character entered is: ','$'
out_msg2 db 0dh,0ah, '$'
.code
start:
mov ax, @data
mov ds, ax ; Set DS segment
mov dx, offset char_prompt; display msg1
mov ah,9
int 21h
mov ah, 01h ;store char in BL
int 21h
mov bl, al
mov dl, 0dh; ;output CR
mov ah, 02h
int 21
mov dl, 0ah ;output LF
mov ah, 02h
int 21
mov dx, offset out_msg1 ;display msg2
mov ah,9
int 21h
mov dl, bl ;display char
mov ah, 02h
int 21h
mov ax, 4C00h
int 21h
end start
答案 0 :(得分:2)
你的代码错了: 仔细查看int部分:
mov dl, 0dh; ;output CR
mov ah, 02h
int 21
mov dl, 0ah ;output LF
mov ah, 02h
int 21
你错过了什么? INT 21不正确!!它应该是INT 21H
答案 1 :(得分:1)
试试这个:
mov ah, 06h
mov dl, 0dh ; CR
int 21h
mov ah, 06h
mov dl, 0ah ; LF
int 21h
不得不这样说,这是过去的爆炸...... :)
不得不去我最喜欢的网站Ralf Brown的Interrupt list ...记住直接控制台输出的说明是什么..
编辑: 按照枪手的说法指出..是的,'h'缺失了......我太血腥了......:P他应该获得赞成票等等: )