汇编语言实现16进制字符串转换的子程序
时间: 2023-11-28 21:43:49 浏览: 311
汇编试验 (1)将 BUF开始的 10 个单元中的二进制数转换成两位十六进制数的 ASCII 码,在屏幕上显示出来。要求码型转换通过子程序 HEXAC实现,在转换过程中,通过子程序 DISP实现显示. (2)编程实现从键盘接受一个字符串,再从键盘接受一查找的字符(例如’g’) ,找到时提示’Yes,found !’,找不到时提示’No found !’ 。
4星 · 用户满意度95%
以下是汇编语言实现16进制字符串转换的子程序:
```assembly
; 输入:SI指向16进制字符串,DI指向存储结果的内存单元
; 输出:无
; 功能:将16进制字符串转换为对应的数字存在内存中
HEX2DEC PROC NEAR
XOR AX, AX ; AX清零
AGAIN:
LODSB ; 读取一个字符到AL
CMP AL, 0 ; 如果读到字符串结束符,则退出
JE EXIT
SUB AL, '0' ; 将字符转换为数字
CMP AL, 9 ; 如果是数字0~9
JBE NUM
SUB AL, 7 ; 如果是字母A~F
NUM:
SHL AX, 4 ; AX左移4位
ADD AX, AL ; 将当前字符转换后的数字加到AX中
JMP AGAIN
EXIT:
MOV [DI], AX ; 将转换后的数字存储到内存中
RET
HEX2DEC ENDP
```
阅读全文