汇编语言:从键盘上接受一个字符,显示它的前导字符和后继字符

题目要求从键盘上接受一个字符,显示它的前导字符和后继字符

源代码

DATA SEGMENT
MSG1 DB 'Please input a letter :$'
MSG2 DB 'The previous letter is :$'
MSG3 DB 'The next letter is :$'
DATA ENDS
CODE SEGMENT
    ASSUME CS:CODE,DS:DATA
START:     
MOV AX,DATA
    MOV DS,AX
	MOV DX,OFFSET MSG1;显示提示信息1
	MOV AH,09H
    INT 21H
	
	MOV AH,01H;等待用户输入
	INT 21H
	MOV BX,AX
    DEC AL;-1计算前导字符
	INC BL;+1计算后继字符
    PUSH BX;保存BX内容即后继字符
	PUSH AX;保存AX内容即前导字符
	
	MOV DL,0DH;回车
	MOV AH,02H
	INT 21H
	
	MOV DL,0AH;换行
	MOV AH,02H
	INT 21H
	
	MOV DX,OFFSET MSG2;显示提示信息2
	MOV AH,09H
    INT 21H
	
	POP AX;AX内容即前导字符出栈
	MOV DL,AL;AL内容送入DL(存放的是ASCLL码),准备输出
	MOV AH,02H;输出前导字符
	INT 21H
	
	MOV DL,0DH;回车
	MOV AH,02H
	INT 21H
	
	MOV DL,0AH;换行
	MOV AH,02H
	INT 21H

    MOV DX,OFFSET MSG3;显示提示信息3
	MOV AH,09H
    INT 21H
	
	POP BX;BX内容即后继字符出栈
	MOV DL,BL;BL内容送入DL(存放的是ASCLL码),准备输出
	MOV AH,02H;输出后继字符
	INT 21H
	
	MOV DL,0DH;回车
	MOV AH,02H
	INT 21H
	
	MOV DL,0AH;换行
	MOV AH,02H
	INT 21H
	
	JMP START;无条件跳转至start,继续输入
	
	MOV AH,4CH;结束进程,返回DOS
	INT 21H
CODE ENDS
END START

注意:

1.栈是先进后出,AX,BX的入栈顺序决定其出栈顺序,进而影响到后面前导字符和后继字符的显示顺序。

2.适当增加提示信息可以增强代码的可读性。

运行结果截图如下

输入f,显示其前导字符为e,后继字符为g;

输入o,显示其前导字符为n,后继字符为p。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值