2014-01-15 145 views
0

說我有SP寄存器中的16位地址1964h,如何將這個地址複製到8085中的連續8位內存? PS:我將SP用於通用操作(例如存儲操作數)。如何將堆棧指針寄存器中的值存儲到存儲器(8085)?

+1

LXI SP的變體,現在你已經擁有了HL,並且可以隨心所欲地做任何事情。像SHLD一樣將其存儲到內存中。你不能合理地使用SP作爲操作數,一箇中斷會殺死你。 DI是必需的。 –

回答

1

就是這麼做的:

lxi h,0h  ; initialize hl to zero 
    dad sp   ; add sp to hl 
    shld [dest]  ; store to memory 
+0

似乎是一種合理的方式來做到這一點 - ISTR我有一個宏來照顧這樣的事情...... 30多年前... – Magoo

0

我曾經寫這對於一個HD-米克的PROM(啓動監視器) - Mikromikko 1.

; !---------------------------------------------------- 
; ! sptohl  0090 
; ! 
; ! moves sp to hl (the value of sp before the call) 
; ! 
; ! on return : 
; ! hl = sp 
; ! other registers are saved 
; ! 
sptohl : 
     push psw 
     lxi  h,00000h 
     ana  a 
     dad  sp 
     inx  h 
     inx  h 
     inx  h 
     inx  h 
     pop  psw 
     ret