回覆列表
-
1 # ggfzu14173
-
2 # pzyyo24296
組合語言中,count equ $-DA 中 $-DA是定義一個變數count並賦值$-DA,$是當前地址,DA是這條語句之前定義的變數地址,$-DA用於統計當前地址與DA這個地址間有多少位元組。例如:data segment DA db 1,3,5,7,9,11,13,15,17 count equ $-DA;count等於9data ends
EQU是等值命令,countEQU$-offsetA的意思是count=$-offsetA 有時,一個表示式在程式中會多次出現,重複書寫可能較為繁雜,易出錯。另一方面。如果要對該表示式進行變動,那麼必須在程式中找到每一個表示式,一一做出修改,稍有不慎,就會遺漏,引出麻煩。利用EQU偽指令,就可以避免這些問題的發生。 equ偽指令並不為符號分配空間,編譯器將equ符號直接替換為其值,作為指令中的立即數。 例COUNTEQU256 表示賦予數256一個名字,叫做COUNT。 VAR1EQUCOUNT-2 表示賦予表示式COUNT-2一個名字,叫做VAR1。如果有“COUNTEQU256”在先,那麼由於COUNT是數值256,所以VAR1就代表數值254。 PHEQUPUSH 表示賦予PUSH一個名字PH。由於PUSH是組合語言的一個助記符,因此,在程式中書寫PHAX,就相當於PUSHAX。