八位十六进制转二进制数的汇编源代码

来源:百度知道 编辑:UC知道 时间:2024/05/21 11:52:28
如题,本人是初学汇编的小小菜,找到了一个四位十六进制转二进制的汇编源代码,想改成八位十六进制转二进制的,不晓得怎么弄,请求达人帮帮忙,帮忙改下代码,谢谢了.
这是四位十六进制转二进制的代码,望达人帮忙.
;;数据段
data segment
inData dw ?
inputInfo db 'Please input a hex of 4 bits: $'
errorInfo db 'Input error, please repeat$'
resultInfo db 'The result is : $'
newlineInfo db 0dh, 0ah, '$'
data ends

;;代码段
code segment

main proc far
assume cs:code, ds:data

start:
;;set up for return
push ds
xor ax, ax
push ax

;;set ds register to current data segment
mov ax, data
mov ds, ax

call InputData ;;input data

call ToBin ;;turn to bin and show the result

ret
main endp

;;输入四位的十六进制数,并转换为十进制保存在inData里
;;输入参数:
;;输出参数:inData
InputData proc near

push dx
push ax
push cx
push bx

input: ;;output me

;-------------------------------------------------
;可转换16位以内任意无符号数(1或8 或4 或n n<=16)
;或者修改data段 可转换更多位
;Esc键退出 回车键后就开始转换转换
;-------------------------------------------------

data segment
assume ds:data
indata db 16 dup(20h)
inputinfo db 'Please input one hex=<16 bits: $'
errorinfo db 'Input error, please repeat$'
resultinfo db 'The result is : $'
newlineinfo db 0dh, 0ah, '$'
data ends
;-------------------------------------------------
;-------------------------------------------------

code segment
assume cs:code

main proc far
mov ax,data
mov ds,ax
mov es,ax

call inputdata
call hextobin

mov ah,4ch
int 21h
main endp
;--------------------------------------
;--------------------------------------