80X86學習筆記 組合語言的語句

2022-03-27 14:55:17 字數 1758 閱讀 7028

1.語句的種類

指令語句和偽指令語句兩類,指令語句有著與其對應的機器指令,偽指令語句沒有與其對應的機器指令,只是指示匯程式設計序如何彙編源程式,包括符號的定義,變數的定義,段的定義。

2.語句格式指令語句和偽指令語句的格式相似,都由四部分組成。

格式:

[標號] 指令助記符 [運算元] [;注釋]

偽指令語句格式:

[名字] 偽指令定義符 [引數…,引數] [;注釋]

一般偽指令語句都有引數,用於說明偽指令的操作物件,有時引數是常數(數值表示式),有時引數是一般符號,有時是具有特殊意義的符號。

標號和名字一般最多由31個字母,數字及規定的特殊字元(

?@$)等組成,並且不能用數字開頭。

組合語言中的保留字主要是指令助記符,偽指令的ing一符和暫存器名,還有一些其他的特殊保留字。

匯程式設計序不區分保留字中字母的大小寫。

表示式分為數值表示式和位址表示式。

1.常數

常數有多種型別和表示式,常用型別和表示方式如下:

(1)十進位制常數

可以用字母d結尾例:248d,通常輕快下,常數用十進位制表示,所以表示十進位制常數一般不加字尾字母d。

組合語言提供改版基數的偽指令:radix

例:

mov bx, 0ffh

mov bx , 178

radix 16

mov bx, 0ff

mov bx, 178d

(2)十六進製制數

必須以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 ...