8085微处理器中是否使用了XTHL指令?
Is there any use of the XTHL instruction in an 8085 microprocessor?
我了解 XTHL 的作用,但有人可以举例说明实际使用它的场景吗?此外,如果可能,请也分享应用程序的代码。
一种用途包括将参数传递给汇编函数,如下所示:
CALL function_name
DB 1,2,3 ;arguments
...
function_name:
XTHL
MOV A,M ;get argument
INX H ;move to next argument
...
XTHL ;now return modified return address to stack,
;also restoring HL contents as well
其他用途是在堆栈顶部放置 HL 的卷影副本,例如:
DAD B ;hl=hl+bc
XTHL ;'shadow' hl swapped in
JNC no_inc
INX H
no_inc:
DAD D ;hl=hl+de
XTHL
;so we just added 32-bit number in DE:BC to HL:(TOS)
以类似的方式处理压入堆栈的单词。
一些滥用行为还包括:
LXI SP,addr1
XTHL
LXI SP,addr2
XTHL
...
此代码将通过连续 LXI SP,addr
命令指向的位置移动数据字链。当然,这需要中断禁用,但增益是速度。
我了解 XTHL 的作用,但有人可以举例说明实际使用它的场景吗?此外,如果可能,请也分享应用程序的代码。
一种用途包括将参数传递给汇编函数,如下所示:
CALL function_name
DB 1,2,3 ;arguments
...
function_name:
XTHL
MOV A,M ;get argument
INX H ;move to next argument
...
XTHL ;now return modified return address to stack,
;also restoring HL contents as well
其他用途是在堆栈顶部放置 HL 的卷影副本,例如:
DAD B ;hl=hl+bc
XTHL ;'shadow' hl swapped in
JNC no_inc
INX H
no_inc:
DAD D ;hl=hl+de
XTHL
;so we just added 32-bit number in DE:BC to HL:(TOS)
以类似的方式处理压入堆栈的单词。
一些滥用行为还包括:
LXI SP,addr1
XTHL
LXI SP,addr2
XTHL
...
此代码将通过连续 LXI SP,addr
命令指向的位置移动数据字链。当然,这需要中断禁用,但增益是速度。