Assembly 用函数技术编写汇编代码
我被问到一个问题,其中我必须将一个8位数字从内存位置ABCDH:1200H移动到内存位置DCBAH:3456H。以下是我的代码:Assembly 用函数技术编写汇编代码,assembly,x86,emu8086,Assembly,X86,Emu8086,我被问到一个问题,其中我必须将一个8位数字从内存位置ABCDH:1200H移动到内存位置DCBAH:3456H。以下是我的代码: MOV [1200H], 6 MOV AL,[1200H] CALL FUNC HLT FUNC: MOV [3456H],AL RET 对吗 将8位数字从内存位置ABCDH:1200H移动到内存位置DCBAH:3456H 假设源和目标位于不同的内存段中,则当前解决方案将AL值移动到同一内存段中检索该值的位置。让我
MOV [1200H], 6
MOV AL,[1200H]
CALL FUNC
HLT
FUNC:
MOV [3456H],AL
RET
对吗
将8位数字从内存位置ABCDH:1200H移动到内存位置DCBAH:3456H
假设源和目标位于不同的内存段中,则当前解决方案将AL
值移动到同一内存段中检索该值的位置。让我们希望这是ABCDh的第一部分
mov ax, 0ABCDh
mov ds, ax
mov [1200h], 6 ;Initialize the source byte
mov al, [1200h] ;Read source ABCDh:1200h
CALL FUNC
HLT
如果要在函数中进行此传输,则至少应保留段寄存器(您将使用的)
您需要设置数据段寄存器。您为什么要将6移动到
[1200]
?
; Input AL
; Output none
; Changes none
FUNC:
push ds
push dx
mov dx, 0DCBAh
mov ds, dx
mov [3456h], al ;Write destination DCBAh:3456h
pop dx
pop ds
ret