汇编语言:编一程序把键入的十六进制数转化 成十进制数。要求 1:在屏幕上显示转换的十进制数,键入的 20
编一程序把键入的十六进制数转化成十进制数。要求1:在屏幕上显示转换的十进制数,键入的最大数为FFFFH2:若键入非十六进制数,则显示出错提示,重新输入。谢谢大佬!(*'へ...
编一程序把键入的十六进制数转化
成十进制数。要求
1:在屏幕上显示转换的十进制数,键入的最大
数为FFFFH
2:若键入非十六进制数,则显示出错提示,重新输入。
谢谢大佬!(*'へ'*) 展开
成十进制数。要求
1:在屏幕上显示转换的十进制数,键入的最大
数为FFFFH
2:若键入非十六进制数,则显示出错提示,重新输入。
谢谢大佬!(*'へ'*) 展开
2个回答
2018-06-24 · 知道合伙人互联网行家
关注
展开全部
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询