第一章,第二章,第三章
1.無符號數的範圍:0~255
2.有符號數(補碼)範圍是:-128~127 同時of等與0結果正確。
3.(原碼反碼)範圍是:-127-127
4.計算機的軟體系統一般分為:系統軟體和應用軟體
5.邏輯位址表示式:段位址:段內偏移位址,段位址放在(cs)偏移位址在(ip),段內偏移位址也就是有效位址。
6.實體地址是=段位址*10h+段內偏移位址
7.2^30=1g 2^20=1m 2^10=1k
8.1個儲存單元對應於20位,1m對應的位址範圍是00000h~fffffh+.
9.變數的三種基本屬性:段屬性,偏移屬性,型別屬性。
10.8086是16位處理器。
11.8086內部結構:從功能上講:匯流排介面單元(biu (bus inte***ce unit)),執行單元eu(execution unit)。
1.段內轉移和段間轉移的區別:
段內轉移只改變的是ip,段間轉移改變的是ip 和cs.
段內轉移需要運算元是16(8)位,段間轉移需要運算元是32位----這個可以有型別來判斷。
定址方式:直接定址方式:有修飾字:far near short。間接方式:一般型別的。
4.2指令的定址方式
運算元的種類:
1,資料運算元字和位址運算元
資料運算元分為【資料】:1>立即數運算元指令要操作的數字直接在指令中)2>暫存器運算元指令要操作的書直接在暫存器中 3>儲存器運算元指令要操作的書直接放在指定儲存單元中 4>i/o運算元指令要操作的書直接來自或送入i/o埠
位址運算元【位址】
定址方式:
資料定址方式(包還如下四點)
1,立即數定址方式:運算元直接包還在指令中
如:mov bl,80h
mov ax,1090h
規定該定址方式只能做源運算元
立即數:各種進製的常數,字元常數,符號常量,位址【段名,段位址,偏移位址】,常數表示式
2,暫存器定址方式
運算元存放在指令規定的暫存器中
如:mov cl,dl
mov ax,bx
dl=50h,bx=24h
3, 儲存器定址方式
運算元存放在儲存單元之中,即是運算元在儲存單元中的實體地址,需要偏移位址來配合
偏移位址又稱為有效位址包還:1>位移量2>基址3>變址
直接定址方式:如 mov al,[1064h]
一般情況下是:預設ds,但是也允許段超越形式如:mov al,es:[1064h]
暫存器間接定址方式;
運算元的有效位址在si,di,bx中其中的一種如:mov ax,[si] mov [bx],al
暫存器相對定址方式:運算元的有效位址(bx,bp,di,si)的內容其中的一種和8,16位位移量之和組成如:mov al,table[bp]
基址變址定址方式:運算元有效位址是基址暫存器(bx,bp)和乙個變址暫存器(si,di)內容之和如:
mov [bx+di],ax mov ah,[bp][si]
基址變址相對定址方式:運算元有效位址是乙個基址暫存器和乙個變址暫存器內容之和和8位16位位移量之和三個分量組成如:mov ah,[bx+di+1234h]
4,i/o埠定址方式
埠直接定址方式:in al,21h
埠間接定址方式:mov dx,120h out dx,ax
位址定址方式:
1,段內直接定址方式:
2,段內間接定址方式:
3,段間直接定址方式:
4,段間間接定址方式:
4.3.1 資料傳送指令
通用資料傳送指令
1> 資料傳送指令
mov 指令中,源運算元可以是:儲存器,暫存器,段暫存器,立即數;目的運算元可以是:儲存器,暫存器(除了ip),和段暫存器(不能是cs)不能有立即數
注意:mov 指令不能是儲存單元之間的傳送 ,不能是立即數到段暫存器的傳送,不能是段暫存器之間的傳送
2>堆疊操作指令
1> push 運算元src可以是通用暫存器和段暫存器也可以是一種定址方式指示的儲存單元
注意不能是立即數
2>pop 運算元dst可以是儲存器,通用暫存器,段暫存器(除了cs)
注意不能是立即數
這兩條指令只能操作字
以上兩個均只能操作字如:push (pop) ah 都是錯誤的
push [2000h]:如果定義了[2000h]存放的是運算元字型別,則正確,否則錯誤
pop [si]:如果定義了[si]存放的是運算元字型別,則正確,否則錯誤
3>資料交換指令xchg
可以再暫存器與暫存器之間,或者暫存器與儲存器之間進行交換
注意二者不能同時為儲存器,段暫存器的內容不能參加交換.源、目的運算元型別一致,可以同是字或位元組。
4>位元組轉換指令xlat
指令格式:xlat src_table等價於 mov (al)<-(bx)+(al)
過程:可以根據表中元素的符號,查出表中相應元素的內容。為了實現查表轉換,要先將表的首位址,也就是表頭送入bx暫存器,元素序號送入al。注意xlat中可以不寫運算元
如: mov bx,offset hex_table
mov al oah
xlat hex_table
mov bx, offset table ;不寫offset錯誤等價於:lea bx, table
xlatb不允許再寫運算元,查表指令的運算元是一種特殊的基址變址定址方式,基址暫存器為bx,變址暫存器為al。
目標位址傳送指令
1>取有效位址指令
lea reg16 ,mem;
源運算元必須是乙個儲存器運算元,目的運算元必須是乙個暫存器運算元。
2>輸入輸出指令
eg:第一種是間接埠定址方式:
mov dx,ax
out dx,al 是正確的這裡不需要考慮型別是否匹配,(埠間接定址的段暫存器只能是dx暫存器)。
第二種是直接埠定址方式:
eg:in al,21h埠直接定址方式。
位操作指令:
1.and :相與的指令:
4.3.2 算術運算指令
加法指令
1>不帶進製的加法指令(對16進製制而言)
格式:add dst,src ;dst<-dst+src
目的運算元可以使暫存器或儲存器(不能立即數),源運算元可以使暫存器,儲存器或者立即數
注意兩個的運算元不能同時儲存器,不能對段暫存器進行加法運算
邏輯運算中的與(and)異或(xor)也是如此的規則。
2>帶進製的加法指令(對16進製制而言)
格式:adc dst,src; dst<-dst+src+cf;
規則和add的規則是一樣的
3>十進位制數(bcd碼)運算指令(對十進位制而言)
aaa(調整非壓縮形bcd編碼,指令操作如下:
af:輔助進製標誌位,結果中低四位向高四位進製或借位是af=1,否則為0。
cf:進製標誌位,最高位發生進製或者借位是cf=1或者為0
al&&ofh>9,或者af=1 al<- al+06h ah<- ah+1 af<-1
cf<-af al<- al&&ofh al<- al&&ofh
僅僅調整個位
daa(調整壓縮性bcd編碼),指令如下:
(al&&0fh)>9或者(af=1)
則(al)<-(al)+06h
(af)<-1
如果(al)>9fh或(cf=1)
則(al)<-(al)+60h
(cf)<-1
先調整個位,再調整十位
除了調整指令對af和cf有影響,還有算術運算指令也有影響
4>inc 指令中的目的運算元可以使暫存器和儲存器,但是不可以是立即數和段暫存器。
右移:shr 相當於無符號數的除。shl相當於無符號數的乘。
5>串傳送指令:(repe movs(b,w))
指令格式:
rep movs,rep movsb,rep movsw 意思:di<-si si<-si+1 di<-di+1
串裝入指令:lods 指令格式是將乙個字串中的位元組或字乙個乙個裝入累加器al或者ax中。指令操作是:al<-si或者ax<- si si<- si+1 si<- si+2
6:穿比較指令。(repe cmps(b,w)
微機原理總結
指令指標暫存器ip始終存有相對於當前指令段起點偏移量的下一條指令,即ip總是指向下一條待執行的指令。5 簡述8086系統中實體地址的形成過程。8086系統中的實體地址最多有多少個?邏輯位址呢?答 8086系統中的實體地址是由20根位址匯流排形成的。8086系統採用分段並附以位址偏移量辦法形成20位的...
微機原理總結
記得剛要上這門課的時候,學長就跟說這是一門很重要很有用的課程,對今後的一些課程設計或者是做一些專案之類的都有很大的幫助,特別是對畢業就想找工作的人來說學會微控制器就更重要了,所以我一直都很認真的在聽課,但是由於去參加北京市的電子設計大賽,老師允許我們不用做這門課的實驗,再加上這門課平時就沒有什麼要做...
微機原理總結複習
微機原理 2.2.1 8088cpu概述 與8080 85相比,8088效能的提高主要依賴於 1 建立4位元組的指令預取佇列 2 設立位址段暫存器 3 在結構上和指令設定方面支援多為處理器系統。2.2.2 8088cpu引線及其功能 最小模式下的引線 a8 a15 它們是三態輸出引線,負責送出位址。...