1.語句的種類
指令語句和偽指令語句兩類,指令語句有著與其對應的機器指令,偽指令語句沒有與其對應的機器指令,只是指示匯程式設計序如何彙編源程式,包括符號的定義,變數的定義,段的定義。
2.語句格式指令語句和偽指令語句的格式相似,都由四部分組成。
格式:
[標號] 指令助記符 [運算元] [;注釋]偽指令語句格式:
[名字] 偽指令定義符 [引數…,引數] [;注釋]一般偽指令語句都有引數,用於說明偽指令的操作物件,有時引數是常數(數值表示式),有時引數是一般符號,有時是具有特殊意義的符號。
標號和名字一般最多由31個字母,數字及規定的特殊字元(
?@$)等組成,並且不能用數字開頭。
組合語言中的保留字主要是指令助記符,偽指令的ing一符和暫存器名,還有一些其他的特殊保留字。
匯程式設計序不區分保留字中字母的大小寫。
表示式分為數值表示式和位址表示式。
1.常數
常數有多種型別和表示式,常用型別和表示方式如下:
(1)十進位制常數
可以用字母d結尾例:248d,通常輕快下,常數用十進位制表示,所以表示十進位制常數一般不加字尾字母d。
組合語言提供改版基數的偽指令:radix
例:
mov bx, 0ffh(2)十六進製制數mov bx , 178
radix 16
mov bx, 0ff
mov bx, 178d
必須以h結尾,為了避免與普通符號的混淆,16進製制必須以數字開頭,所以,凡是以字母開頭的十六進製制數,必須在前面加乙個0.
(3)二進位制常數
必須以字母b結尾。
(4)八進位制常數
必須以q結尾。
(5)字串常數
乙個字串常數是用引號括起來的乙個或多個字元。串常數的值是包括在引號中字元ascii**值,因此串常數與整常數有時可以交替使用。
2.算術運算子+ – */ mod
3.關係運算子eq ne lt gt le ge 運算結果是乙個數字值,若關係不成立為0,若關係成立則結果為0ffffh。
4.邏輯運算子
and or xor not shl shr
邏輯運算結果是數值。
5.在數值表示式中使用的操作符(1)high
格式:high 數值表示式
結果是數值表示式值的高8位,優先順序高於+ -
(2)low
6.運算子和操作符的優先順序由高到低排列如下;
(1)圓括號 尖括號 方括號 圓點符 length size width mask 其中,尖括號使用於記錄中,圓點符使用於結構中。
(2)ptr offset seg type this 冒號(用於表示段超越字首)
(3)* / mod shl shr
(4)high low
(5)+ -
(6)eq ne lt le gt ge
(7)not
(8)and
(9)or xor
(10)short
位址表示式表示的是儲存器運算元的位址。
單個標號 變數 和 右方括號擴起的基址火變址暫存器是位址表示式的特例。
在乙個儲存位址上加乙個或減乙個數字量,結果仍為儲存器位址。
80x86組合語言學習筆記(三)
今天上午開始看組合語言程式設計初步,這一章分為 組合語言語句 變數和標號 常用偽指令語句和源程式組織 順序程式設計 分支程式設計 迴圈程式設計這幾塊,這次總結一下組合語言的語句。首先組合語言的語句分為指令語句 偽指令語句和巨集指令語句,其中指令語句是可以被譯成機器指令的語句,例如將某運算元從乙個暫存...
80x86組合語言學習筆記(四)
這次總結一下組合語言中的變數和標號 首先,變數和標號均表示儲存單元,也就是某個位址,但不同的是,變數表示的儲存單元用來儲存數值,而標號表示的單元則是用來儲存 由此可以推斷,變數應該指向ds,標號應該指向cs。舉個例子 count db 5 其中db就是變數 start mov ax,1234h 其中...
80x86組合語言 分類統計
組合語言的程式設計題!急 有100個學生成績,存放在以data為首址的位元組儲存單元中。試統計其中90 含90 以上的人數,60 90 含60 之間的人數,60以下的人數,分別存入max,middle,min三個變數中。15 分鐘前 做而論道 十七級 最快回答 assume ds qq,cs cc ...