【发布时间】:2023-04-08 05:15:01
【问题描述】:
我正在编写代码以在汇编中将十六进制 (A-F) 转换为十进制。我设法在 8086 emu 上写了它,但我需要它用于 linux。我需要帮助。
代码在 8086 模拟器 n 窗口上运行良好。但我无法将其转换为 Linux 语法。我对汇编的 Linux 语法不熟悉。
这是我的 8686 代码。
org 100h
.model small
.stack 100h
.data
msg1 db 'Enter a hex digit:$'
msg2 db 'In decimal it is:$'
.code
main proc
mov ax,@data
mov ds,ax
lea dx,msg1
mov ah,9
int 21h
mov ah,1
int 21h
mov bl,al
sub bl,17d ; convert to corrosponding hex value
mov ah,2
mov dl,0dh
int 21h
mov dl,0ah
int 21h
lea dx,msg2
mov ah,9
int 21h
mov dl,49d ;print 1 at first
mov ah,2
int 21h
mov dl,bl
mov ah,2 ; print next value of hex after 1
int 21h
main endp
end main
ret
【问题讨论】:
-
Linux 是一个操作系统,你的意思可能是 x86 汇编——这就是处理器架构。
-
没有“Linux 语法”,但您通过代码与操作系统交互的方式不同。参见例如jameshfisher.com/2018/03/10/linux-assembly-hello-world
标签: linux assembly compiler-errors att emu8086