用8086汇编语言编写一个输入字符串的程序

持续从键盘输入字符并显示到屏幕上,要求输入回车时换行继续输入,输入左shift时输出四个空格,输入esc时退出程序。

代码如下:

DSEG SEGMENT
SPACES DB  20H, 20H, 20H, 20H, 24H
LINE DB 0DH, 0AH, 24H
DSEG ENDS

SSEG SEGMENT PARA STACK
DW 256 DUP(?)
SSEG ENDS

CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
BEGIN:
MOV AX, DSEG
MOV DS, AX

LOOP1:
MOV AH, 08H
INT 21H

; 判断回车键
MOV DL, AL
CMP DL, 0DH
JNE LOOP3
MOV DX, OFFSET LINE
MOV AH, 9
INT 21H
JMP LOOP1
LOOP3:
; 判断 SHIFT 键
MOV DL, AL
CMP DL, 0EH
JNE LOOP2
MOV DX, OFFSET SPACES
MOV AH, 9
INT 21H
JMP LOOP1
LOOP2:
; 判断 ESC 键
MOV DL, AL
CMP DL, 1BH
JE EXIT

; 显示字符
MOV DL, AL
MOV AH, 02H
INT 21H
JMP LOOP1

EXIT:
MOV AH, 4CH
INT 21H

CSEG ENDS
END BEGIN

追问

其实我在masm里跑你的程序,按shift还是不能跳四格,我现在编这个程序就是这个shift怎么都出不来,难道是我电脑问题?

追答

在我的电脑里shift是切换输入法的,也是没有效果,换作其它键应该没有问题

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-07-12
这个比较花时间,要找回MASM,及在DOS上运行调试。网上有这资料。
相似回答