汇编基础(五)
$運算符
$代表它自己所在位置的地址
$運算符緊跟在?DB、DW、DD偽指令之后,統計字符串的長度。
例如數據段有:?
BUF?DB?’THE?QUICK?BROWN?FOX’?????;字符串長度19
LLL?EQU?$-BUF
匯編后符號常數LLL的值即為19
?
SEG運算符
??H格式:?SEG?段名或變量名或標號名
??H功能:?計算某一邏輯段的段基址
如:??MOV?AX,SEG?DATA
?????MOV?DS,AX
設“DATA”是數據段的段名,上述兩條指令算出數據段
的段基址,先賦給AX,再轉賦DS。
?
OFFSET運算符
??H格式:OFFSET??變量名或標號名
??H功能:算出某個變量或標號名所在單元的偏移地址(有效地址)。
設以“DATA”為段名的數據段中,存在
????????????BUF?DB?12?,34?,56
代碼段:????MOV?AX,SEG?DATA
????????????MOV?DS,AX
????????????MOV?BX,OFFSET?BUF
????????????MOV?AL,[BX]
?
PTR運算符
???格式:?類型說明符?PTR?地址表達式??????????;AL=12
???功能:?在本條指令中臨時修改地址表達式的屬性
舉例:設數據段有:
BUF?DB?11,22,33,44
WBUF?DW??,?
XX?DB?0FFH,0
YY?DB?0FFH,0FFH,0,0
ZZ?DB?0FFH,0FFH,0FFH,0
?
MOV?AX,BUF??????????????×
MOV?AL,BUF
MOV?AX,WORD?PTR?BUF????;?AH=22,AL=11
MOV?BUF,12H???????????√
MOV?BUF,1234H?????????×
MOV?WORD?PTR?BUF,1234H??;BUF單元為34H,BUF+1單元為12H
?
舉例:設數據段有:
BUF?DB?11,22,33,44
WBUF?DW??,?
XX?DB?0FFH,0
YY?DB?0FFH,0FFH,0,0
ZZ?DB?0FFH,0FFH,0FFH,0?
?
MOV?DI,OFFSET?ZZ
MOV?[BX],12H??????????×?????????
MOV?BYTE?PTR?[BX],12H?????;XX單元為12H
MOV?WORD?PTR?[BX],12H????;XX單元為12H,???XX+1單元為0
總結
- 上一篇: php js脚本查询php,php结合j
- 下一篇: 实现电子词典_它是一部电子词典,一部翻译