A. 匯編語言 寄存器間接定址 MOV AX,[BX];物理地址=DS× 16+BX 其中的DSx16是
微機原理課程沒正內容,你看看定址方面的野尺,8086處理器中,DS是段地址寄存器,段地址實際上是段起始地址的高16位,所以要X16,不明白頌察高的話,好好看看書。
B. 匯編語言中的問題……寄存器間接定址 MOV AX,[BX];物理地址=DS× 16+BX 其中的D
因為一個寄存訪問不完內存1M地址,就是20位地址,段寄耐稿猛存器乘以昌橋16就是20位敬猜地址再加上一個15就能訪問完這1M的地址。
C. 計算機組成原理相關問題二進制補碼運算,定址方式和物理地址表達式
(1-1) [16]補 =0001 0000B
[6]補 =0000 0110B (+
-------------------------------------
[16+6]補 =0001 0110B
16+6 =16H =22D
.
(1-2) [9]補 =0000 1001B
[-7]補 =1111 1001B (+
-------------------------------------
[9-7]補 =0000 0010B ,符號位進位1自然丟失
9-7 =02H =02D
.
(1-3) [8]補 =0000 1000B
[-18]補 =1110 1110B (+
-------------------------------------
[8-18]補 =1111 0110B
8-18 = -0AH = -10D
.
(1-4) [16]補 =0001 0000B
[-6]補 =1111 1010B (+
-------------------------------------
[16-6]補 =0000 1010B ,符號位進位1自然丟失
16-6 = 0AH =10D
.
.
(2)
MOV AL, [SI] 寄存器慶純間接定址, 物理地址 =(DS)x10H+(SI)
MOV AL, [2000H] 直接定址, 物理地址 =(DS)x10H+2000H
ADD AL, disp[BX][SI] 基址變派絕址定址, 物理地址 =(DS)x10H+(BX)+(SI)+disp
MOV AH, [BP][SI] 基址變址定址, 物理地譽羨咐址 =(SS)x10H +(BP)+(SI)
MOV AX, ES:[BP] 寄存器間接定址, 物理地址 =(ES)x10H +(BP)
D. 七種定址方式舉例
七種定址方式舉例為:
1、立即定址方式:
指令:MOV AX,1234H
則: AX = 1234H
2、寄存器定址方式:
對於16位操作數,寄存器可以是差談脊:AX、BX、CX、DX、SI、DI、侍並SP和BP等。
6、基址加變址定址方式:
MOV AX,[BX][DI]
7、相對基址加變址定址方式:
MOV AX,[BX+DI-2]
假設,(DS) = 5000H,(BX) = 1223H,DI = 54H,(51275)= 54H,(51276) = 76H
物理地址= 50000 + 1223 + 0054 + FFFE(-2 各位取反末位加一)= 51275H
執行該指令後 (AX) = 7654H
E. 寄存器定址方式
不可以直接mov ds,3
不可以直接往嫌山段寄存器里傳立即數。芹拍中
不能傳立即數和段寄存器本身賀旅的特點有關系。
由於8086的物理地址是有段寄存器內容*16+偏移量決定的,所以其地址的生成是由一些特殊的移位實現的,如果傳送立即數,沒有寄存器用來保存該地址。所以段地址寄存器的賦值是不可以用立即數的。
除了段地址,也就是ds,cs,ss,es,和一些特殊功能寄存器,比如pc,sp等,其餘的寄存器,像ax,bx,cx,dx,di,si等都可以傳立即數。
F. 寄存器定址和寄存器間接定址的區別
一、塌此主體不同
1、寄存器定址:是指操作數在寄存器中,由指令操作碼中的rrr三位的值和PSW中RS1及RS0的狀態,選中某個工作寄存器區的某個寄存器,然後進行相應的指令操作。
2、寄存器間接定址:將指定的寄存器內容為地址,由該地址所指定的單元內容作為操作數。
二、功能不同
1、寄存器定址:指令所要的操作數已存儲在某寄存器中,或把目標操作數存入寄存器。
2、寄存器間接定址:寄存器內存放的是操作數的地址,而不是操作數本身,即操作數是通過寄存器間接得到的。
三、特團笑迅點不同
1、寄存器定址:在指令執行過程中,會減少讀/寫存儲器單元的次數,所以,使用寄存器定址方式的指令具有較快的執行速度。
2、寄存器間接定址:需要以寄存器符號的形式來表示,且在寄存器名稱前面加上間接定址符號「@」。例如指令MOV A,@R0就使用了寄存器間接定址方式。
G. 在寄存器間接定址方式中,段地址有哪些確定的方法
就8086而言,寄存器間接定址段地址確定方法兩種而仿純胡盯已:
1.根據段前綴來定。
比如指令:MOV AX,ES:[DI],則段地址為ES
2.根據所使用的備做咐寄存器來定
如果用的是BX,SI,DI則默認的是DS,用的是BP則為SS。
如MOV AX,[BX],段地址為DS,而指令MOV AX,[BP],則段地址為SS
H. 微機原理尋地址方式和求物理地址。
mov es:[si], ax 中目的操作數為 寄存器間接定址,其物理地址=es*16(即左移4位)+si=20000h+0200h=20200h 。
從已有條件看,ax 為源操作數,但其 未知。
I. 請指出下列指令源操作的定址方式,並計算物理地址
mov [bx,],cx 寄存器間接定址(或基址定址) 物理地址為ds*16+bx
mov[2000H],BX 直接定址 ds**16+2000h
mov[BP],BX,寄存器間接定址(或基址定址) 物理地址為ss*16+bp
mov[BP+200],BX,基址相對定址 物理地址為ss*16+bp+200
mov[BX+SI+300],AX;基址加變址相對定址 ds*16+bx+si+300
粗心大意,指令沒有寫逗號,學習態度不端正。另外,隨便找本書看看就有,何必這點小事就問人?
J. 附加段BX寄存器間接定址方式
MOV
AX,ES:[BX]
在寄存器銀薯純間接定址的基礎上,我們也可以指定段跨越前綴鋒咐來取得其他段中的數據。(比如ES:
就是指定附加段)
舉個例子,如果(ES)=2100H,(BX)=0100H,則計算出物理地址手賀值為21100H。