汇编语言习题汇总(1)一道程序填空题

下面程序的功能是:从键盘输入一个字符,将该字符的 ASCII 码按 16 进制显示出来。将程序中缺少的语句补充完整。

例如,若输入字符是 ‘C’ ,则显示: THE ASCII OF C IS 43H

原题中留出的空在注释中以下划线括出,题目中所有注释均为后续添加,原题中不包含任何注释。

.386
STACK SEGMENT USE16 STACK		; STACK SEGMENT USE16 _STACK_
	DB 100 DUP(0)
STACK ENDS

DATA SEGMENT USE16
    MSG	DB ‘THE ASCII OF A’
    MSG_1 DB ‘ IS ’
    ; '41H' 为字符型,占 3 个存储单元
    MSG_2 DB ‘41H’, 0AH, 0DH, ‘$’
DATA ENDS

CODE SEGMENT USE16
	ASSUME CS:CODE, DS:DATA, SS:STACK
BEGIN:		
	MOV	AX, DATA
    MOV DS, AX					; _MOV DS, AX_
    MOV	AH, 1
    INT	21H
    MOV	MSG_1-1, AL				; MOV	MSG_1-1, _AL_
    MOV	BX, 1
L1:
	; 低四位转为整数类型, 先处理个位数
	AND	AL, 0FH
	; 小于 10 , 加 '0' 转为字符型
    CMP AL, 10					; CMP AL, _10_
    JB	L2
    ; 大于 10 , 减 10 加 'A' 转为字符型
    SUB AL, 10					; SUB AL, _10_
    ADD	AL, ‘A’
    JMP	L3
L2:	
	ADD  AL, ‘0’				; ADD  AL, _‘0’_
L3:			
	MOV	MSG_2[BX], AL
	CMP BX, 0					; _CMP BX, 0_
	JZ	L4
	MOV	AL, MSG_1-1
	; 右移,处理高四位
	SHR	AL, 4
	DEC	BX
	JMP	L1
L4:		
	MOV	AH, 9
	LEA DX, MSG					; LEA DX, _MSG_
	INT 21H						; _INT 21H_
	MOV	AX, 4C00H
	INT	21H
	JMP	L1
CODE ENDS
	END	BEGIN

这类题可能会在给出程序时绕一些弯子,因此做题时需要尝试模拟程序执行过程,理解程序的设计思路。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值