当前位置:   article > 正文

用汇编实现十六进制数向十进制数的转换_汇编十六进制转十进制

汇编十六进制转十进制

用汇编实现十六进制数向十进制数的转换

一、实现功能

实现一位十六进制数向十进制数的转换。

二、设计分析

      汇编语言中,字符在机器中都是以ascii码的二进制格式存储,但是汇编语言写的时候常用十六进制,因此需要好好看看ascii码的十六进制表。

      特别是进制转换一定要注意,机器中存储的是数的二进制数本身,而我们输入输出的是数的ascii码的值,因此注意对寄存器中数的加减操作

  1. 实现十六进制数向十进制数的转换,先输入一位16进制数,判断输入字符的ascii码在30H-39H(0-9)之间,还是在41H-46H(A-F)之间,或者是在61H-66H(a-f)之间。如果是第一种情况则SUB DL,30H,如果是第二种情况则SUB DL,37H,如果是第三种情况则SUB DL,57H。

  2. 接下来需要将DL中的二进制数转换为十进制数输出。这里我选择将DX除以10,商在AL中,用来表示十位数,余数在AH中,用来表示个位数,如果商是0,则不用输出;如果商是1,则ADD AH,30H,输出AH。余数ADD AL,30H,输出AL。即可得到16进制对应的十进制数。

  3. 注意输出的字符的值是不等于机器中存放的二进制的值,因此需要进行加减法)最后输出对应的16进制的ascii码的值。

  4. 十六进制数向十进制数的转换流程图:
    在这里插入图片描述

三、源代码

DATA SEGMENT
	TIP DB 'INPUT THE NUMBER: ','$'
	TIP1 DB '  <=>  ','$'
DATA ENDS

CODE SEGMENT
	ASSUME CS:CODE,DS:DATA
START:
	MOV AX,DATA
	MOV DS,AX
	LEA DX,TIP
	MOV AH,09H
	INT 21H

INPUT:
	MOV AH,1
	INT 21H
	CMP AL,30H
	JB EXIT
	CMP AL,39H
	JA COMPER1
	JMP CHANGE1    ;0~9之间
COMPER1:
	CMP AL,41H
	JB EXIT
	CMP AL,46H
	JA COMPER2
	JMP CHANGE2    ;在A-F之间
COMPER2:
	CMP AL,61H
	JB EXIT
	CMP AL,66H
	JA EXIT
	JMP CHANGE3    ;在a~f之间

CHANGE1:
	SUB AL,30H
	JMP ENT
CHANGE2:
	SUB AL,37H
	JMP ENT
CHANGE3: 
	SUB AL,57H
	JMP ENT
ENT:
	MOV BL,AL
	LEA DX,TIP1
	MOV AH,09H
	INT 21H
	MOV AL,BL
	MOV AH,0
	MOV BL,10
	DIV BL
	MOV DH,AH
	CMP AL,0
	JE ONE
	MOV DL,AL      ;十位数是1
	ADD DL,30H
	MOV AH,02H
	INT 21H
ONE:	                        ;十位数是0
	MOV DL,DH
	ADD DL,30H
	MOV AH,02H
	INT 21H
EXIT:
	MOV AH,4CH
	INT 21H
CODE ENDS
END START
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/541590
推荐阅读
相关标签
  

闽ICP备14008679号