8086cpu學習筆記(3) 定址方式

2021-09-13 09:07:14 字數 1105 閱讀 4761

操作碼 [運算元] [運算元]

操作碼說明執行的操作,第乙個運算元為目的運算元,第二個為源運算元。

運算元存放位置有eu暫存器,biu指令佇列,儲存器,i/o。運算元在暫存器、cpu中指令執行速度快。立即數定址指令執行速度快。運算元在儲存器或i/o埠中指令執行速度較慢。

運算元是立即數,直接包含在指令中。常用於給暫存器賦初始值。

例: mov cx, 2a50h

注意事項:

1.立即數不能作為目的運算元 如:mov 26h,al

2.以字母開頭的立即數出現在指令中時前面加「0」如:mov ax,0abcdh

3.源運算元與目的運算元長度要一致。

運算元存放在制定的cpu內部的暫存器中。

例:mov ax, dx

8086cpu16位暫存器:ax,bx,cx,dx,si,di,sp,bp

8位暫存器:ah,al,bh,bl,ch,cl,dh,dl

注意事項:

1.源運算元與目的運算元的長度要一致。

2.暫存器定址與段位址無關。

運算元在儲存單元中;有效位址ea由指令直接給出。

例:mov al,[2000h]

注意事項:

1.可使用段超越字首 如:mov ax, ex:[2000h]

2.可使用符號位址 如:val dw 1234h

mov ax, val 等價於mov ax, [1234h]

儲存器運算元的有效位址由暫存器給出。

可用暫存器:bx、bp、si、di

其中bx、si、di暫存器預設的段位址暫存器為ds,bp暫存器預設的短位址暫存器為ss

例:mov ax,[bx]

儲存器運算元的有效位址是基址或變址暫存器的內容或8位或16位的位移量之和。(disp)

運算元的實體地址為 10hds+bx/si/di+disp或10hss+bp+disp

例:mov ax, [bp+1234h]

運算元的有效位址是乙個基址暫存器(bx,bp)與乙個變址暫存器(si,di)內容之和。

例:mov ax, [bx+si]

mov ax, [bx][si]

注意事項:同一組內的暫存器不能同時出現。

不包含運算元。

8086CPU學習筆記 8086的定址方式

認真寫好一篇文章 計算機的指令通常包含操作碼和運算元兩部分。指令有單運算元 雙運算元和無運算元三種,其中雙運算元的兩個運算元要用逗號隔開,逗號左邊是目的運算元,逗號右邊是源運算元。例如 mov ax,cx 該指令將cx暫存器中的數值放到ax暫存器中,其中mov為操作碼,ax為目的運算元,cx為源運算...

8086cpu物理定址

8086cpu有20位位址匯流排,可以傳送20位位址,達到 1mb定址能力。8086cpu 又是16位結構,在內部一次性處理 傳輸 暫時儲存的位址為16位。從8086cpu的內部結構來看,如果將位址從內部簡單地發出,那麼它只能送出16位的位址,表現出的定址能力只有64kb。8086cpu採用一種在內...

8086CPU定址能力的問題

我看的書是王爽的 組合語言 其中關於位址匯流排定址能力的問題的解釋並不好,明明我認為這麼算正確,答案正好相反,去網上搜了下,發現了誤區在哪。其實就一點,但是必須明確 乙個記憶體單元是乙個位元組,其單位是b。拿20根位址匯流排的8086cpu舉例,每根導線可以傳送的狀態有高低電平兩種,分別代表1和0,...