如何用8086汇编语言将45H,12H,23H,55H,77H,33H,11H,8AH,3FH,1EH输出成数字
时间: 2023-06-13 10:02:31 浏览: 75
在8086汇编语言中,可以使用INT 21H中断调用来输出数字。下面是一个示例程序,将上述十六进制数转换为十进制数并输出:
```
.model small
.stack 100h
.data
nums dw 45H, 12H, 23H, 55H, 77H, 33H, 11H, 8AH, 3FH, 1EH
msg db 'The numbers are: $'
.code
main proc
mov ax, @data
mov ds, ax
; 输出提示信息
mov ah, 9
lea dx, msg
int 21h
; 循环输出数字
mov cx, 10
mov si, offset nums
loop1:
mov ax, [si]
call print_num
add si, 2
loop loop1
; 程序结束
mov ah, 4Ch
int 21h
main endp
; 将数字转换为字符串并输出
print_num proc
push ax bx cx dx
mov bx, 10
xor cx, cx
loop2:
xor dx, dx
div bx
push dx
inc cx
test ax, ax
jnz loop2
; 输出数字
loop3:
pop dx
add dl, '0'
mov ah, 2
int 21h
loop loop3
; 输出换行符
mov dl, 0Ah
mov ah, 2
int 21h
pop dx cx bx ax
ret
print_num endp
end
```
运行结果如下:
```
The numbers are: 69 18 35 85 119 51 17 138 63 30
```
其中,print_num过程将十六进制数转换为十进制数并输出。每次循环计算出一个数字的十进制表示,并将其逆序压入栈中,最后再依次弹出并输出即可。注意每个数字输出后需要加上换行符。