8086汇编语言(一) 汇编语言源程序
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                8086汇编语言(一) 汇编语言源程序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                匯編語言源程序
1. 匯編語言源程序結構
??一個完整的匯編語言源程序通常由若干個邏輯段(Segment)組成, 包括數據段、附加段、堆棧段和代碼段,它們分別映射到存儲器中的物理段上。每個邏輯段以 SEGMENT語句開始, 以 ENDS語句結束,整個源程序用END語句結尾。
 ??代碼段中存放源程序的所有指令碼, 數據、變量等則放在數據段和附加段中。程序中可以定義堆棧段,也可以直接利用系統中的堆棧段。具體一個源程序中要定義多少個段應根據實際需要來定。但一般來說,一個源程序中可以有多個代碼段, 也可以有多個數據段、附加段及堆棧段, 但一個源程序模塊只可以有一個代碼段、一個數據段、個附加段和一個堆棧段。將源程序以分段形式組織是為了在程序匯編后,能將指令碼和數據分別裝入存儲器的相應物理段中
2. 源程序結構框架
段名1 SEGMENT ... 段名1 ENDS 段名2 SEGMENT ... 段名2 ENDS ... 段名n SEGMENT ... 段名n ENDS3. 語句類型和格式
(1). 指令性語句的一般格式
[標號] : [前綴] 操作碼 [操作數1, 操作數2] [;注釋]“[ ]” 括起來的內容可以省略, 操作數可以有2個、1個和沒有。
(2). 指示性語句的一般格式
[名字] [偽操作] 操作數1, 操作數2, ... [;注釋]“[ ]” 括起來的內容可以省略。
4. 數據項
(1). 常量
| 十進制常量 | 以字母 “D” 結尾或不加結尾 | 52D, 52 | 
| 二進制常量 | 以字母 “B” 結尾 | 1011B | 
| 十六進制常量 | 以字母 “H” 結尾 | 5CH | 
| 字符常量 | 用單引號括起的一個或多個ASCII字符碼 | ’DD’ | 
(2). 標號 LABLE
??指令的標號由程序員確定, 不能與指令助記符或偽指令名, 也不能由數字打頭, 字符個數不能超過31個。
 ??標號有3種屬性: 段值、偏移量和類型。
(3). 變量
??變量是存儲器中的某個數據區的名字, 變量的類型有:
| 字節 | 8位 | BYTE | 
| 字 | 16位 | WORD | 
| 雙字 | 32位 | DWORD | 
| 四字 | 64位 | QWORD | 
| 十節字 | 80位 | TBYTE | 
(4). 表達式
??表達式不是指令, 本身不能執行, 在程序執行時, 表達式本身是一個有確定值的操作數。
| 加 | + | 
| 減 | - | 
| 乘 | ***** | 
| 除 | / | 
| 取余 | MOD | 
| 與 | AND | 
| 或 | OR | 
| 非 | NOT | 
| 異或 | XOR | 
| 等于 | EQ | 
| 不等于 | NE | 
| 小于 | LT | 
| 大于 | GT | 
| 小于等于 | LE | 
| 大于等于 | GE | 
(5). 運算符
| 取偏移地址運算符 | OFFSET | 取標號或變量的偏移地址 | MOV SI, OFFSET DATA1 | 
| 取段地址運算符 | SEG | 取標號或變量的段地址 | MOV AX, SEG DATA1 | 
| 屬性運算符 | PTR | 指定其后面存儲器操作數的類型 | MOV AL, BYTE PTR [SI] | 
| 方括號運算符 | [ ] | 表示存儲器操作數, 括號中的內容表示操作數的偏移地址 | |
| 段重設運算符 | : | 用來指定一個存儲器操作數的段屬性而不管原來隱含的段 | MOV AX, ES:[SI] | 
總結
以上是生活随笔為你收集整理的8086汇编语言(一) 汇编语言源程序的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 郭天祥的10天学会51单片机_第十一节
- 下一篇: 如何用Mac线刷小米手机
