[英]How can I get user's hex input to print as decimal in x86 assembly (16-bit DOS)?
[英]How can I move an 8-bit address into a 16-bit register in x86 assembly?
在這里,我試圖將變量 X(它是一個 8 位變量)移動到寄存器 bx(它是一個 16 位寄存器)中。 在這種情況下,如何將 X 的值移動到寄存器 bx 中?
.686p
.model flat,stdcall
.stack 2048
.data
X byte 5
ExitProcess proto, exitcode:dword
.code
start:
invoke ExitProcess, 0
mov bx, X; 1>p4.asm(13): error A2022: instruction operands must be the same size
end start ;what does the end statement do?
除了 Rahul 的回答之外,如果您還需要將bh
歸零並且正在處理任何 80386 或更新版本(如.686p
),則為:
movzx bx, X
如果您使用 X 作為有符號值並且需要對bx
進行符號擴展:
movsx bx, X
BX 的低 8 位可作為 BL 尋址。
所以,你需要做的就是: mov bl, X
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.