用8086汇编语言编写程序,接受从键盘上输入的一个两位十进制数字,这个数经过BCD码处理,以十六进制显示出

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-08-31
8086将给定的二进制数1234。转换成二进制编码的十进制bcd码

二进制编码的十进制数,简称BCD码(Binarycoded Decimal). 这种方法是用4位二进制码的组合代表十进制数的0,1,2,3,4,5,6 ,7,8,9 十个数符。4位二进制数码有16种组合,原则上可任选其中的10种作为代码,分别代表十进制中的0,1,2,3,4,5,6,7,8,9 这十个数符。最常用的BCD码称为8421BCD码,8.4.2.1 分别是4位二进数的位取值。 点击此处将给出十进制数和8421BCD编码的对应关系表。

把30H的数取出来
分配在bx中
bh和bl两个都都加上3

把bh的值赋给地址为41H上,bh的值赋给40H

;======================
DISP_STR MACRO X ;宏定义.
MOV DX, OFFSET X
MOV AH, 9
INT 21H
ENDM
;----------------------
DATA SEGMENT ;数据段.
MSG1 DB 13, 10, 'Please Input : $'
MSG3 DB 13, 10, 'The HEX is : $'
x DW ? ;存放新输入数据.
DATA ENDS
;----------------------
CODE SEGMENT ;代码段.
ASSUME CS: CODE, DS: DATA
START:
MOV AX, DATA
MOV DS, AX
;--------------------------------
IN_LOOP:
DISP_STR MSG1 ;宏调用,提示 Please Input :
;--------------------------------
MOV x, 0 ;数据清零.
_INX:
MOV AH, 1 ;输入字符.
INT 21H
;--------------------------------
CMP AL, 13 ;回车?
JE _IN_END ;是则结束输入.

CMP AL, '0'
JB IN_LOOP ;小于'0',不是数字.
CMP AL, '9'
JA IN_LOOP ;大于'9',不是数字.

SUB AL, '0'
MOV CL, AL
MOV CH, 0

MOV AX, x
MOV BX, 10 ;老数据乘以10
MUL BX
ADD AX, CX ;加上新数据.
MOV x, AX ;保存.
CMP AX, 99
JA IN_LOOP
JMP _INX
;--------------------------------
_IN_END:
DISP_STR MSG3 ;宏调用,提示 The HEX is :
MOV AX, x
MOV BX, 16
MOV CX, 0
D_1:MOV DX, 0
DIV BX
ADD DL, '0'
CMP DL, 3AH
JB ZZZ
ADD DL, 7
ZZZ:
PUSH DX
INC CX
CMP AX, 0
JNE D_1
MOV AH, 2
D_2:POP DX
INT 21H
LOOP D_2
;--------------------------------
MOV AH, 4CH
INT 21H
;--------------------------------
CODE ENDS
END START
;=====================

学汇编,要用到哪些软件

  • 8086输入小写输出大写的程序
    答:8086输入小写输出大写的程序 在计算机编程中,将小写字母转换为大写字母是一个很常见的需求。在8086汇编代码中,实现这样的转换可以通过几个简单的步骤来完成。下面将详细介绍如何使用8086汇编代码将小写字母转换为大写字母。步骤1:获取输入字符 要将小写字母转换为大写字母,首先需要从用户输入中获取一个字符...
  • 请分析这道8086汇编语言程序
    答:MOV CL,4 ;;将4放在寄存器CL中 ROL AL,CL ;;将AL中的数循环左移4位 左移的位数时根据cl的值来决定 MOV AX,4C00H ;;21号中断的4c号功能用于退出程序返回执行权给操作系统 INT 21H ;;调用中断21h, 退出程序 不写这个你的程序运行后dos就会死住无法继续操作 CODE ENDS END START...
  • 用电脑的汇编语言(8086)编写移动的小车!
    答:用电脑的汇编语言(8086)编写移动的小车!DATA SEGMENT CAR DB 7 ;字符图形表 DB 52H,10,0,0 DB 0B1H,10,0,1 DB 0DBH,10,0,1 DB 0DBH,10,0,1 DB 4FH, 7,1,0 DB 4FH, 7,0,-3 DB 2,7,-2,1 CHAR_CNT DW ?POINTER DW ?LINE_ON DB ?COL_ON DB ?DA...
  • 汇编语言8086的一个问题,程序如下,为什么我执行程序后str1是从ds 020...
    答://注意下面的代码:/*inc di后dl的值也+1了,dl是di的低8位,这个循环在你的程序中,一直到循环256次后 di=100000000b ,dl才会溢出再为0,此时di指向的位置是str1的偏移0x100+256(0x100)也就是0x200*/ circle1:inc di cmp dl,[ds:di] //此处你本意应是与0比较,现在比较的已经不...
  • 请高手帮帮菜鸟的我,用汇编语言 80X86编个程序-二进制转十进制,有急...
    答:;数据段 data segment outNum db ?;输出数字 msgInput db 'please input the num end with B or b or enter.',0ah,0dh,'[eg:101B]:$'msgEnd db 0ah,0dh,'press any key to end ...$'data ends ;代码段 code segment assume ds:data,cs:code;,es:data ;回车子程序 enter proc ...
  • 求助:一道简单的汇编语言程序设计
    答: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的人数 ...
  • 8086复位后,程序从---地址处开始执行.
    答:从CS:IP = FFFF:0000处的第一条指令开始执行也就是物理地址FFFF0H 何处丿觅倾城 | 发布于2015-12-07 举报| 评论 13 2 是伐 ballack7718 |...8086复位时 8086复位指令 8086复位后DS 什么是8086的总线周期 8086的复位信号是什么 中断服务程序怎么写 8086程序调试 关于汇编语言程序 8086实验...
  • 如何用8086写判断程序
    答:通常8086用汇编程序编写,通常用wmd86。通俗来说,用C语言编程来控制8086是顺理成章的事情,比如从前的TurboC、后来的borlandC,以及现在的VC++等编译后生成的可执行代码都是X86上运行的,如果一定要在8086CPU上运行,则直接指定CPU类别为8086即可。
  • 能不能用8086汇编语言写windows运行的程序?
    答:可以使用win32汇编,和8086汇编不同的是,win32汇编调用windows api,而8086则是中断。win32汇编可以写出窗口程序。可以参考罗云斌 windows环境下32位汇编语言。
  • 8086汇编语言 数据串操作指令
    答:1、将数据段中定义的字符串“HELLO!”传送到附加段中。data segment string1 db 'HELLO!'ChrCoun equ $-string data ends extra segment string2 db ChrCoun dup(?)extra ends code segment assume cs:code,ds:data,es:extra start:mov ax,data mov ds,ax mov ax,extra mov es,ax lea si,...