如何编写一个汇编程序,要求“从键盘接收一个四位的16进制数,并在终端上显示与它等值的二进制数”?

 我来答
Lynn菇凉
2011-05-11
知道答主
回答量:23
采纳率:0%
帮助的人:7.5万
展开全部
程序段如下:
BEGIN: MOV BX, 0 ;用于存放四位的16进制数
MOV CH, 4
MOV CL, 4
INPUT: SHL BX, CL ;将前面输入的数左移4位
MOV AH, 1 ;从键盘取数
INT 21H
CMP AL, 30H ;<0吗?
JB INPUT ;不是‘0~F’的数重新输入
CMP AL, 39H ;是‘0~9’吗?
JA AF ;不是,转‘A~F’的处理
AND AL, 0FH ;转换为:0000B~1001B
JMP BINARY
AF: AND AL, 1101 1111B ;转换为大写字母
CMP AL, 41H ;又<A吗?
JB INPUT ;不是‘A~F’的数重新输入
CMP AL, 46H ;>F吗?
JA INPUT ;不是‘A~F’的数重新输入
AND AL, 0FH ;转换为:1010B~1111B
ADD AL, 9
BINARY: OR BL, AL ;将键盘输入的数进行组合
DEL CH
JNZ INPUT
DISPN: MOV CX, 16 ;将16位二进制数一位位地转换成ASCII码显示
DISP: MOV DL, 0
ROL BX, 1
RCL DL, 1
OR DL, 30H
MOV AH, 2 ;进行显示
INT 21H
LOOP DISP
STOP: RET
鹰的飞翔sunjun
推荐于2019-11-09 · TA获得超过2.5万个赞
知道小有建树答主
回答量:38
采纳率:91%
帮助的人:1.4万
展开全部

试编写一段程序,要求对键盘输入的小写字母用大写字母显示出来。

  1. 编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后续字符,再按顺序显示这三个字符。

  2. 编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后续字符,再按顺序显示这三个字符。

  3. 从键盘上输入一串字符,将其中的小写英文字母变换为大写英文字母,其他字符保持不变。然后将变换后的字符串显示出来。

  4. 试编写一段程序,要求比较两个字符串string1和string2所含字符是否相等,如相等示“MATCH”, 若不相同则显示“NO MATCH”。

  5. 试编写一段程序,要求在长度为100H字节的数组中,找出大于61H的无符号数的个数并存入字节单元UP中,找出小于2FH的无符号数的个数并存入字节单元DOWN中。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangfan2000
2018-01-07 · TA获得超过2549个赞
知道小有建树答主
回答量:586
采纳率:50%
帮助的人:567万
展开全部
code segment
assume cs:code

start: mov bx,0
mov ch,4

mov cl,4

s0: mov ah,1 ;键盘输入4个16进制数

int 21h

cmp al,39h ;判断是0~9还是A~H,若是数字减30H,否则还要减07H

jbe next

sub al,07h

next: sub al,30h
shl bx,cl
add bl,al ;转换后的数据存入BX,每存一次左移4位
dec ch

jnz s0 ;输入完则控制显示

mov cx,16

s1: mov dl,0

rol bx,1 ;循环左移1位,最高位移入CF

adc dl,30h ;加30H后可得该位的ASCII码.

mov ah,02h

int 21h

loop s1

mov ax,4c00h

int 21h

code ends
end start

说明:编译连接后,运行后直接输入4个16进制数后回车即可.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式