使用函数技术编写汇编代码
writing assembly code using function technique
我有一个问题,我必须将一个 8 位数字从内存位置 ABCDH:1200H 移动到内存位置 DCBAH:3456H。以下是我的代码:
MOV [1200H], 6
MOV AL,[1200H]
CALL FUNC
HLT
FUNC:
MOV [3456H],AL
RET
是否正确?
move an 8-bit number from memory location ABCDH:1200H into the memory location 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
如果您要在函数中执行此传输,那么您至少应该保留段寄存器(您将使用)。
; 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
我有一个问题,我必须将一个 8 位数字从内存位置 ABCDH:1200H 移动到内存位置 DCBAH:3456H。以下是我的代码:
MOV [1200H], 6
MOV AL,[1200H]
CALL FUNC
HLT
FUNC:
MOV [3456H],AL
RET
是否正确?
move an 8-bit number from memory location ABCDH:1200H into the memory location 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
如果您要在函数中执行此传输,那么您至少应该保留段寄存器(您将使用)。
; 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