怎样用汇编实现16进制和2进制的互换

wention 2008-12-16 10:50:35
学汇编的作业,一点没思路,不了解其中的原理,能不能给个例子,注明下每步的作用,要求能选择1,2,3. 1表示2进制转换16进制,2表示16进制到2进制,3表示退出。请高手指点下,不胜感激!!!
...全文
303 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wention 2008-12-16
  • 打赏
  • 举报
回复
还有思想是怎样的?
wention 2008-12-16
  • 打赏
  • 举报
回复
能不能够去掉错误字符的
killbug2004 2008-12-16
  • 打赏
  • 举报
回复
一个转二进制的例子
data segment 
Data dw 01FFh;Ҫת»»ÊýµÄASICC
data ends

stack segment STACK
db 256 dup(0)
tos label word
stack ends
code segment
assume cs:code,ds:data
begin:
mov ax,data
mov ds,ax
mov es,ax

mov ax,stack
mov ss,ax
mov sp,offset tos

;¿ªÊ¼
xor ax,ax
mov ax,Data ;Ҫת»»µÄÊýµÄASICC
xor cx,cx
DoDiv:
mov bl,2
div bl

push ax
inc cx
xor ah,ah
cmp al,0
jnz DoDiv

DoPrt:
pop dx
xchg dh,dl
add dl,30h
mov ah,2
int 21h
loop DoPrt

exit:
mov ax,4c00h
int 21h
code ends
end begin
wention 2008-12-16
  • 打赏
  • 举报
回复
……刷新了下发了两次……
BAYNPU 2008-12-16
  • 打赏
  • 举报
回复
;从键盘上接收4位的十六位进制数,并在终端上显示与它等值的二进制数
.model small
.386
.code
main proc far
start:
push ds
mov ax,0
push ax
mov ax,0
mov cx,4
mov dx,0
input:
mov ah,1H
int 21H
cmp al,30H
jl input
cmp al,39H
jle s
cmp al,61H
jl input
cmp al,66H
jg input
sub al,27H
s:
sub al,30H
add dl,al
cmp cx,1H
je f
rol dx,4
f:
loop input
exit:
call print
ret
main endp
print proc near
mov cx,10H
p:
rol dx,1
push dx
and dx,1
add dx,30H
mov ah,2
int 21H
pop dx
loop p
ret
print endp
end start

21,500

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧