0

https://encrypted.google.com/books?id=FIYGSv3-C6IC&pg=PA59&lpg=PA59&dq=mov+r,+M+8085&source=bl&ots=aX-essc34w&sig=vyGYCHeeJP_Dv_iE8ZjggI2Zh1k&hl=en&sa=X&ei=iZd8U6uJNNWhugSNoILADg&vedone=0CFQQ6# =mov%20r%2C%20M%208085&f=false

从上面的链接: Content of the memory location whose address is available in H,L pair is transferred to the destination register r.

我不明白的是地址如何进入 H,L 对?我有一个内存地址,并希望将其中存在的值传输到寄存器。如何使用 MOV r,M指令执行此操作?

4

2 回答 2

2

你首先要把需要的地址加载到HL中,然后你就可以得到HL指向的地址的内容,例如

LXI HL,1000h          ; load 16 bit address 0x1000 into HL register pair
MOV B,(HL)            ; read contents of address 0x1000 into register B
于 2014-05-21T12:31:35.397 回答
1

8085 包含一些在 8080 上找不到且未由 Z80 实现的“未记录”指令,因此这些指令很少使用。这是 8085 特定指令的包含文件。在我的例子中,这些被用于基于 8085 的 CP/M 计算机的 BIOS 和实用程序。请注意,DE 可用作地址以将 HL 加载或存储为 16 位值:

ARHL    MACRO       ;ARITH RIGHT SHIFT HL
    DB  10H
    ENDM
DSUB    MACRO       ;HL=HL-BC
    DB  08H
    ENDM
JNXC    MACRO   X   ;JMP IF NOT X CARRY (INX, DCX)
    DB  0DDH
    DW  X
    ENDM
JXC MACRO   X       ;JMP IF X CARRY
    DB  0FDH
    DW  X
    ENDM
LDHI    MACRO   I   ;DE=HL+I
    DB  28H
    DB  I
    ENDM
LDSI    MACRO   I   ;DE=SP+I
    DB  38H
    DB  I
    ENDM
LHLX    MACRO       ;HL=(DE)
    DB  0EDH
    ENDM
RDEL    MACRO       ;ROTATE DE,CY LEFT
    DB  18H
    ENDM
RIM MACRO           ;RESET INT MASK
    DB  20H
    ENDM
RSTV    MACRO       ;RST IF V SET TO 40H
    DB  0C8H
    ENDM
SHLX    MACRO       ;(DE)=HL
    DB  0D9H
    ENDM
SIM MACRO           ;SET INT MASK
    DB  30H
    ENDM
于 2014-05-22T03:08:35.860 回答