- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
组合语言基础.doc
組合語言基礎
凡事都要由基層做起,程式設計也不例外,然後組合語言,很多人聽了就怕,就只說不好學,好難啊!為什麼會這樣呢,這是因為他們沒組合語言所要的基礎。
那麼你一定會問,學組合語言要有哪些基礎常識呢?首先你必需知道一個可執行檔在DOS之下是如何被載入記憶體中而執行,電腦的CPU內部有哪些暫存器,各暫存器的功用為何,如何有效運用暫存器,如何做記憶體、CPU暫存器、及硬碟三者之間的資料傳輸與搬移,然後接下來就是組合語言指令的撰寫,我會依依為您介紹,若有未詳盡之處,還請見諒與指教。
1.暫存器與記憶體的使用
2.定址法的種類與使用方法
3.堆疊的原理與使用方法
4.資料型態與數值的轉換、二進位與十六進位
5.組合語言指令簡介
6.旗標的控制與使用方法
7.系統呼叫 INT
8.利用DEBUG寫出第一個可執行的組合語言程式
9.組合語言程式的開發過程方塊圖
10.組合語言的假指令
11.組合語言原始檔基本架構
12.設計第一個可執行的組合語言程式
暫存器的種類
捷徑:記憶體的結構、記憶體的存取方式
1.一般暫存器:AX、BX、CX、DX
AX:累積暫存器,BX:基底暫存器,CX:計數暫存器,DX:資料暫存器
ax,bx,cx,dx各為16位元即2bytes空間的暫存器,其中ax又可化分為ah與al,而bx可化分為bh與bl,cx及dx亦同,而ah與al空間即為8位元1byte的空間,舉例,如果ax=3478h,那麼ah=34h、al=78h
其中bx又可用來間接定址的暫存器使用,舉例,假如 ds=2300h,bx=0200h,那麼執行 mov ax,[bx] 指令後就會把 2300:0200 記憶體的資料取出2byes並存入 ax,就是這樣懂了嗎? 註:mov? p1,p2 為組合語言指令,功能即將 p2 內容複製至 p1。
80386以上電腦,一般暫存器已擴充至32位元,為 EAX、EBX、ECX、EDX 如下:
????????????????????????????? EAX
AH AL ???????????????????????????????????????????????? AX
以上EAX為32位元暫存器,AX為16位元,AH及AL皆為8位元
????????????????????????????? EBX
BH BL ???????????????????????????????????????????????? BX
以上EBX為32位元暫存器,BX為16位元,BH及BL皆為8位元
????????????????????????????? ECX
CH CL ???????????????????????????????????????????????? CX
以上ECX為32位元暫存器,CX為16位元,CH及CL皆為8位元
????????????????????????????? EDX
DH DL ???????????????????????????????????????????????? DX
以上EDX為32位元暫存器,DX為16位元,DH及DL皆為8位元
2.索引暫存器:SI、DI
SI:來源索引暫存器,DI:目的索引暫存器
16位元暫存器,功能同 bx 可間接定址,但不能化分成兩個 8 位元
80386以上電腦,索引暫存器已可擴充至32位元,為 ESI、EDI 如下:
??????????????????????????????????????????????????????? ESI
SI 以上ESI為32位元暫存器,SI為16位元??????????????????????????????????????????????
??????????????????????????????????????????????????????????? EDI
DI 以上EDI為32位元暫存器,DI為16位元????????????????????????????????????????????????
3.堆疊、基底暫存器:SP、BP
SP:堆疊指標暫存器,BP:基底指標暫存器
SP是堆疊指標,當使用 push 指令時,sp會加2,而執行pop時sp會減2
??????? BP是可間接定址的暫存器,不過通常用於堆疊段,如 mov ax,ss:[bp]
註:mov ax,ss:[bp]? 中的ss為
文档评论(0)