Assembly 用函数技术编写汇编代码

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值移动到同一内存段中检索该值的位置。让我

我被问到一个问题,其中我必须将一个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
值移动到同一内存段中检索该值的位置。让我们希望这是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