立即定址

彙編語言中的一種定址方式,在面向不同形式的處理器中,會有不同的編寫方式。

基本介紹

  • 中文名:立即定址
  • 概念類型:定址方式
  • 用處:對通用暫存器或記憶體單元賦初值
  • 表示方法:二進制,八進制,十進制等
  • 目的:簡化調用過程
定義,立即數表示注意事項,

定義

立即定址方式的目的就是將運算元緊跟在操作碼後面,與操作碼一起放在指令代碼段中,在程式運行時,程式直接調用該運算元,而不需要到其他地址單元中去取相應的運算元,上述的寫在指令中的運算元也稱作立即數
立即定址
在MCS-51單片機彙編語言編程中,該定址方式是將“#”號放在立即數前面,以表示該定址方式為立即定址,如將運算元寫為#52H。
例: MOV A ,#52H
上述例子中“MOV”為操作碼,“A”為第一運算元,其意義為累加暫存器,“#52H”為第二運算元,其意義就是立即數。通過該條程式指令可將十六進制數52H直接放入累加器中,當然也可以將立即數表示為二進制數或十進制數,如#00B。
在8086系列微型處理器彙編語言編程中,該定址方式不用將“#”放在立即數前面。
例: MOV AH,80H
上述例子中的第一個運算元“AH”表示高位累加器,第二個運算元為立即數,其前不用加入“#”。

立即數表示注意事項

1、 根據數制類型不同,可以使用二進制、八進制、十進制、十六進制等表示方法,並在相應的數制類型後面加上B、O、D、H作為區分,例如:00001111B,02H等。
2、根據微型處理器的處理位數不同,程式編寫時應對其取值範圍、存儲方式加以注意。如對於8位處理器,應採用00H至FFH(以十六進制表示)之間的數。
3、對於16位以上的處理器在立即數為16位或32位時,它將按“高高低低”的原則進行存儲。
例如(以下的例子為8086系列彙編語言中指令格式,括弧中為指令的解釋):
MOV AH,80H (將八位立即數存入高位累加暫存器)
ADD AX,1234H (將十六位立即數與累加暫存器中的數相加並存入累加暫存器)
MOV ECX,12345678H(將三十二位立即數存入擴展計數暫存器)
MOV B1, 12H(將八位立即數存入位元組單元)
MOV W1,3456H(將十六位立即數存入字單元)
ADD D1,32123456H(將三十二位立即數與雙字單元中的數相加)
應注意,以上指令中的第二運算元(例:MOV AH,80H中80H為第二運算元)都是立即數,在彙編語言中規定:立即數不能作為指令中的第一運算元。該規定與高級語言中“賦值語句的左邊不能是常量”的規定相一致。
4、立即數定址方式通常用於對通用暫存器或記憶體單元賦初值。

相關詞條

熱門詞條

聯絡我們