汇编语言笔记——8086&&寻址方式与指令系统
生活随笔
收集整理的這篇文章主要介紹了
汇编语言笔记——8086&&寻址方式与指令系统
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
匯編語言中
- 語句不區(qū)分大小寫,編譯軟件會自動識別語句
- 用戶自定義的變量和符號必須區(qū)分大小寫。
8086
1.寄存器
cpu在訪問存儲器時,必須指明:
- 段寄存器:所訪問的存儲單元屬于哪個段
- 偏移量:相應存儲單元與段起始地址(段基址)的距離
notes : 在程序設計中,可以把一個程序劃分為任意個存儲段。但只要在程序運行時,最多只有四個段,它們分別由CS,DS,ES和SS指定因為我們只有四個段寄存器呀ヾ(????)?"
IP(指令指針)的內(nèi)容不能直接被訪問,不能直接用指令去讀IP的值,也不能用指令為其賦值。但可通過某些指令的執(zhí)行去修改IP的內(nèi)容
2.存儲器
存儲器由若干個存儲單元構成
存儲單元的多少就表示存儲器的容量大小
每個存儲單元存放相同長度的二進制數(shù)
一個存儲單元的長度一般為八位二進制數(shù),即一個字節(jié)
每個存儲單元有一個唯一的編號——地址
8086有二十根地址線,即它的存儲器尋址能力為2^20,即一兆字節(jié)空間
任何兩個相鄰字節(jié)單元就構成一個字單元?(?????)
兩者遵循低對低,高對高
尋址方式
一條指令由操作碼和操作數(shù)構成
- 操作碼:該指令應完成的具體操作。在匯編語言中使用特定的符號來表示,稱為助記符。eg:MOV,PUSH,ADD等
- 操作數(shù):該指令的操作對象。eg:加法操作里的加數(shù)
尋址方式:尋找指令中所需操作數(shù)的各種方法,即提供指令中操作數(shù)的存放信息的方式
指令系統(tǒng):計算機所能執(zhí)行的各種類型的指令集合
notes:目的數(shù)只能做源操作數(shù),不能傳送給段寄存器
無操作數(shù)指令
- 指令不需要操作數(shù),eg:暫停指令HLT
- 在指令格式中,沒有顯示地指明操作數(shù),但是隱含了操作數(shù)的存放地方,eg:指令PUSHF
notes:段寄存器CS只能做源操作數(shù),不能做目的操作數(shù)
eg:MOV AX,CS
MOV CS,AX ?
CS中存儲的可是指令啊,所以不能輕易被改變~
notes :寄存器與存儲單元的區(qū)分: [ ] 包括的為存儲單元
notes:存儲單元之間不能直接傳送數(shù)據(jù)
notes:MOV指令不影響標志位
指令編碼
- 一個存儲單元邏輯地址表示方式 段基址:偏移量
- 段基址由某個段寄存器提供
- 偏移量表示該存儲單元與段起始地址之間的距離,!也就是我們所說的有效地址EA
- 有效地址EA是位移量,基址,變值三個地址分量的組合結果,有CPU的執(zhí)行單元EU計算出來
- 位移量:指令中直接給出的一個8位或16位數(shù)。一般源程序中以操作數(shù)名字(變量名或標號)的形式出現(xiàn)
- 基址:由基址寄存器BX或基址指針BP提供的內(nèi)容
- 變址:由源變址寄存器SI或目的變址寄存器DI提供的內(nèi)容
- 有效地址EA是位移量,基址,變值三個地址分量的組合結果,有CPU的執(zhí)行單元EU計算出來
總結
以上是生活随笔為你收集整理的汇编语言笔记——8086&&寻址方式与指令系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Node v18.6 发布的这个新特性未
- 下一篇: GIM发布新版本了 (附rust CLI