汇编语言:编一程序把键入的十六进制数转化 成十进制数。要求 1:在屏幕上显示转换的十进制数,键入的 20

编一程序把键入的十六进制数转化成十进制数。要求1:在屏幕上显示转换的十进制数,键入的最大数为FFFFH2:若键入非十六进制数,则显示出错提示,重新输入。谢谢大佬!(*'へ... 编一程序把键入的十六进制数转化
成十进制数。要求
1:在屏幕上显示转换的十进制数,键入的最大
数为FFFFH
2:若键入非十六进制数,则显示出错提示,重新输入。
谢谢大佬!(*'へ'*)
展开
 我来答
做而论道
高能答主

2022-08-19 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部

编一程序,把键入的十六进制数,在屏幕上用十进制数显示出来。

键入的十六进制数,不限位数。如超出四位,只将最后四位做转换并显示。

若键入非十六进制数,则不予显示,等待继续输入。

键入回车符,结束输入。

程序如下:

DoramiHe
2018-06-24 · 知道合伙人互联网行家
DoramiHe
知道合伙人互联网行家
采纳数:25332 获赞数:59542
2011年中山职业技术学院毕业,现担任毅衣公司京东小二

向TA提问 私信TA
展开全部
data segment
x db 34h ;00110100b ;34h在内存中的存储格式为00110100b
data ends

code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax

mov bl,byte ptr [x] ;al<-10001010b

mov cl,8 ;cx<-8

l1: test bl,80h ;看bl和1000000b与的最高为是否为1

jnz l2 ;如果不是1,则l2,输出0

mov dl,'0'
mov ah,02h
int 21h ;输出1

jmp l3

l2: mov dl,'1'
mov ah,02h
int 21h ;输出0

l3: shl bl,1 ;al逻辑左移,将次高位移动到最高位

dec cl
jnz l1

mov ah,4ch
int 21h
code ends
end start
该程序使用逻辑尺方法。首先将34h防入bl中;然后用逻辑左移的方法将bl的每一位移动至最高位,然后根据它和10000000与的方法查看最高位是否为1,如果是,则屏幕显示1,否则显示0。这样,屏幕上显示的是34h的二进制值00110100b
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式