汇编语言:分支程序设计从键盘输入一个十进制正整数 N(10≤N≤99),将其转换成为十六进制数,转换的结果显示在屏幕上。(键盘输入的内容都是 ASCII 的形式)
时间: 2023-06-17 22:02:54 浏览: 53
下面是一个汇编程序,实现了将十进制正整数转换成十六进制数并输出的功能。
```
.model small
.stack 100h
.data
msg db '请输入一个十进制正整数 N (10<=N<=99):$'
hex_table db '0123456789ABCDEF'
newline db 0dh, 0ah, '$'
n db 0
.code
mov ax, @data
mov ds, ax
mov ah, 09h
lea dx, msg
int 21h ; 输出提示信息
mov ah, 01h
int 21h ; 从键盘输入一个十进制正整数
sub al, 30h ; 转换成数字
mov bl, al ; 保存原始值
mov ah, 0
mov cl, 4 ; 右移 4 位
shl al, cl ; 高 4 位移到低 4 位
mov cl, 0 ; 清零低 4 位
mov cl, bl ; 保存低 4 位
and cl, 0fh ; 取低 4 位
add al, cl ; 高低 4 位相加
mov dl, hex_table[al] ; 转换成十六进制字符
mov ah, 02h
int 21h ; 输出高位
mov al, bl ; 恢复原始值
and al, 0fh ; 取低 4 位
mov dl, hex_table[al] ; 转换成十六进制字符
mov ah, 02h
int 21h ; 输出低位
lea dx, newline
int 21h ; 输出换行符
mov ah, 4ch
int 21h ; 程序结束
end
```
程序的主要思路是先从键盘输入一个十进制正整数,然后将其转换成十六进制数的高位和低位,并输出。转换的过程是先将十进制数左移 4 位得到高位,然后将原始值的低 4 位与高位相加得到十六进制数的值,最后输出对应的字符即可。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)