操作碼 [運算元] [運算元]
操作碼說明執行的操作,第乙個運算元為目的運算元,第二個為源運算元。
運算元存放位置有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,...