求一段8086汇编语言程序设计,将键盘接收到的四位十六进制数转换为等值的二进制数,并显示。

供稿:hz-xin.com     日期:2025-01-13
求一段8086汇编语言程序设计,将键盘接收到的代表四位十六进制数的字符转换为等值的二进制数,并显示。

;----------------------------------------------------------------------
;程序名称:DIS_DEC
;功能:通过DOS功能调用显示十进制数最大65535
;入口参数:AX
;出口参数:无
;临时空间:CX
;调 用:HEXTOASCII
;作 者:
;创建日期:2009-11-06
;创建时间:23:12
;程序版本:
;----------------------------------------------------------------------
DIS_DEC PROC
MOV DX, 0
MOV BX, 10000
DIV BX ;(0,AX)/10000,取商
MOV CX, DX ;CX临时保存余数
CALL HEX1TOASCII ;转换为ASCII码
MOV DL, AL ;2号功能调用单字符显示万位数,待显示字符ASCII码在DL中
MOV AH, 2 ;2号功能调用
INT 21H ;INT 21H进行调用

MOV DX, 0
MOV BX, 1000
MOV AX, CX
DIV BX ;(0,CX)/1000,取商
MOV CX, DX ;CX临时保存余数
CALL HEX1TOASCII ;转换为ASCII码
MOV DL, AL ;显示千位数
MOV AH, 2
INT 21H

MOV BL, 100
MOV AX, CX
DIV BL ;(AX)/100,取商
MOV CH, AH ;CH临时保存余数
CALL HEX1TOASCII ;转换为ASCII码
MOV DL, AL ;显示百位数
MOV AH, 2
INT 21H

MOV BL, 10
MOV AH, 0
MOV AL, CH
DIV BL ;(0,CH)/10,取商
MOV CH, AH ;CH临时保存余数
CALL HEX1TOASCII ;转换为ASCII码
MOV DL, AL ;显示十位数
MOV AH, 2
INT 21H

MOV AL, CH
CALL HEX1TOASCII ;转换为ASCII码
MOV DL, AL ;显示个位数
MOV AH, 2
INT 21H

MOV DL, 0DH ;显示回车符
MOV AH, 2
INT 21H
MOV DL, 0AH ;显示换行符
INT 21H
RET
ENDP
;----------------------------------------------------------------------
;----------------------------------------------------------------------
;程序名称:HEX2TOASCII
;功能:2位十六进制数转ASCII码
;入口参数:AL
;出口参数:AX
;临时空间:CH:暂寸数据,CL:移位次数
;调 用:HEX1TOASCII:一位HEX转换ASCII码
;作 者:
;创建日期:2009-11-06
;创建时间:23:12
;程序版本:
;----------------------------------------------------------------------
HEX2TOASCII PROC
MOV CH, AL ;暂存数据
AND AL, 0F0H ;取高4位
MOV CL, 4
SHR AL, CL ;右移4位进行转换
CALL HEX1TOASCII ;转换高4位的ASCII码
MOV AH, AL ;保存结果
MOV AL, CH ;取原待转换数据
AND AL, 0FH ;取低4位数据
CALL HEX1TOASCII ;转换低4位的ASCII码
RET
ENDP
;----------------------------------------------------------------------
;----------------------------------------------------------------------
;程序名称:HEX1TOASCII
;功能:1位十六进制数转ASCII码
;入口参数:AL
;出口参数:AL
;临时空间:无
;调 用:
;作 者:
;创建日期:2009-11-06
;创建时间:23:12
;程序版本:
;----------------------------------------------------------------------
HEX1TOASCII PROC
CMP AL, 9
JBE BELOW9 ;小于等于9,加30H
ADD AL, 07H ;大于9,加37H
BELOW9: ADD AL, 30H
RET
ENDP
;----------------------------------------------------------------------

参考:

http://hi.baidu.com/do_sermon/item/4b344ad343487bc81a72b49b

十六进制ABCD
=
二进制A<<12d+B<<8d+C<<4d+D

dsv

求一段8086汇编语言程序设计,将键盘接收到的四位十六进制数转换为等值的...
十六进制ABCD = 二进制A<<12d+B<<8d+C<<4d+D

使用8086汇编语言编写程序实现:将从键盘输入的小写字母转换成大写字母...
2\\x0d\\x0aint 21h\\x0d\\x0ainc si\\x0d\\x0adec ch\\x0d\\x0ajz exit\\x0d\\x0ajmp crt\\x0d\\x0a;---\\x0d\\x0aexit:\\x0d\\x0amov ah,4ch\\x0d\\x0aint 21h\\x0d\\x0a;---\\x0d\\x0aL1:\\x0d\\x0acmp al,7ah ;al<='z'\\x0d\\x0ajbe L2\\x0d\\x0amov [b...

求一段8086的汇编语言程序,对50个带符号字节数据进行排序,将排序结果显 ...
;冒泡排序 ;负数显示补码如-1显示65535 ;如想增加数据只需在a变量中添加,;同时长度len要相应的更改 ;--- data segment len dw 10 a dw -1,2,100,-100,99,-120,15,46,411,102 b dw 0 data ends code segment main proc far assume cs:code,ds:data start:push ds sub ax,ax push ...

编写8086汇编语言程序 将寄存器AX的高8位传送到寄存器BL ,AX的低...
mov BL,AH mov DL,AL

用8086汇编语言编写程序,将dl的高4位与低4位互换
ror dl,1 ror dl,1 ror dl,1 ror dl,1 连续四次用ror dl,1 或者 mov cl,4 ror dl,cl

用8086汇编语言编写 把16进制数转化为ASCII码
0fh mov byte ptr[di],al pop ax mov cl,4 ror ax,cl dec di pop cx loop again1 ;以下是将array数组中的16进制数转为ASCii码 lea si,array add si,2 mov cx,4again2: cmp byte ptr[si],9 jg next1 add byte ptr[si],30h jmp nex...

用8086的汇编语言做一个完成两个十进制2位数之间的加减乘除运算的程序...
数据段里可以设置三个变量分别存放两个十进制数和运算符,然后程序读入你输入的式子,把对应的数据存起来,转换好,因为控制台输入的式子会转化成ascii码的形式。然后运算完得到结果再转化一次成ascii码的值输出

用8086汇编语言编写程序,从键盘输入一段字符,以#结束,统计其中数字,字母...
lea dx, buf mov ah,0ah int 21h; xor cx, cx mov cl, buf+1 mov si, 0Loop1: mov al, buf[si+2] cmp al, '#' jz lopend cmp al, 20h jz space cmp al,

怎么用汇编语言编程将从内存A5000H单元开始的100个单元清零?
8086汇编程序如下:MOVAX, 0A500H MOV DS, AX MOV BX, 0000H;DS:BX组成物理地址A5000H MOV CX, 100;一共6个单元清0 AGAIN: MOV [BX], 00H INC BX LOOPAGAIN

求助:一道简单的汇编语言程序设计
8086汇编语言,使用masm5汇编器编译通过 data segment score db 30,40,50,60,70,80,90,67,70 ;9个学生的分数 num_under60 db 0 ;60以下的人数 num_60to69 db 0 ;60到69的人数 num_70to79 db 0 ;70到79的人数 num_80to89 db 0 ;80到89的人数 num_90to99 db 0 ;90到99的人数 ...