Ⅰ 計算物理地址
不知道這是不是你想要的。
計算比較急,你最好驗證一下代入數相加的結果有沒有錯
ADD AX,[1000H] ;直接定址方式EA=DS*10H+1000H=2000H*10H+1000H=21000H
MOV AL,[BX+SI] ;基址加變址定址方式EA=DS*10H+BX+SI=2000H*10H+0100H+00A0H=201A0H
INC CX ;寄存器定址方式 CX
MOV AX,[BX+10] ;寄存器相對定址方式EA=DS*10H+BX+10=2000H*10H+0100H+10H=20110H
MOV AX,[BX] ;寄存器間接定址方式EA=DS*10H+BX=2000H*10H+0100H=20100H
MOV AX,0ABH ;立即定址方式EA=DS*10H+0ABH=2000H*10H+0ABH=200ABH
MOV AX,[BX+SI] ;基址加變址定址方式EA=DS*10H+BX+SI=2000H*10H+0100H+00A0H=201A0H
MOV AX,[100H] ;直接定址方式 EA=100H
MOV AX,[BP] ;寄存器間接定址方式EA=DS*10H+BP=2000H*10H+0010H=20010H
MOV AX,VAL[BX] ;寄存器相對定址方式EA=DS*10H+VAL+BX=2000H*10H+0050H+0100H=20150H
Ⅱ 匯編語言 寄存器間接定址 MOV AX,[BX];物理地址=DS× 16+BX 其中的DSx16是
微機原理課程沒正內容,你看看定址方面的野尺,8086處理器中,DS是段地址寄存器,段地址實際上是段起始地址的高16位,所以要X16,不明白頌察高的話,好好看看書。
Ⅲ 寄存器間接定址
物理地址=20000H+1000H=21000H
寄存器間接旁譽定址,BX存放的是操作數的偏移地址。
上面計算出來的物理地址,就是操作數所野陵在的頌啟戚具體地址。
上面的計算,是拿1000H當做地址,並沒有拿1000H作為操作數。
Ⅳ 附加段BX寄存器間接定址方式
MOV
AX,ES:[BX]
在寄存器銀薯純間接定址的基礎上,我們也可以指定段跨越前綴鋒咐來取得其他段中的數據。(比如ES:
就是指定附加段)
舉個例子,如果(ES)=2100H,(BX)=0100H,則計算出物理地址手賀值為21100H。
Ⅳ 寄存器定址和寄存器間接定址的區別
寄存器(直接)定址:指令中指出暫存操作數的寄存器。寄存器的內容就是操作數。如:ax里放1,bx里放2,add
ax,bx結果為ax=3。
寄存器間接定址,指令中指睜鉛明存放操作數偏移地址的寄存器。即操作數放在內存空間的某個地方,這個地方的地址由段地址和寄存器所指出的偏移量進行計算得出。段地址按照一定的約定給出。若指令中指出的是bx,si或di寄存器(未定義悉粗好附加段)時,說明操作數在數據段中,先用ds的值與寄存器的內容合成物理地址;若指令中指出bp,說明操作數在堆棧段,選用ss的值與寄存器的內容合成物理地址;若定義了附加段,且指令中指出了di寄存器,那麼選用es與di合成物理地址;若在指令中有超越段前綴,則選用指令中凳扒指出的段寄存器值與寄存器的內容合成物理地址。
如:mov
ax,[bx]
操作數[bx]為寄存器間接定址方式。
若ds=4000h,bx=100h,存儲單元(40100h)=3256h
物理地址=16*ds+bx=40000h+100h=40100h
執行後ax=3256h
簡單地說,直接定址,操作數在寄存器中;間接定址,操作數在某存儲單元中,該存儲單元地址由段地址寄存器和偏移地址寄存器決定。
Ⅵ 七種定址方式舉例
七種定址方式舉例為:
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
Ⅶ 微機原理尋地址方式和求物理地址。
mov es:[si], ax 中目的操作數為 寄存器間接定址,其物理地址=es*16(即左移4位)+si=20000h+0200h=20200h 。
從已有條件看,ax 為源操作數,但其 未知。
Ⅷ 計算機組成原理相關問題二進制補碼運算,定址方式和物理地址表達式
(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)
Ⅸ 請指出下列指令源操作的定址方式,並計算物理地址
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
粗心大意,指令沒有寫逗號,學習態度不端正。另外,隨便找本書看看就有,何必這點小事就問人?
Ⅹ 懂匯編的請進!!!指出源操作數的定址方式和物理地址表達式
1、寄存器間接定址
物理地春納址=16d*(DS)+(BX)
2、直接定址
物理地址=16d*(DS)+BUFFER
3、相對基址變址定址
計算公式: 物理備閉地址=16d*(DS)+(BX)+(SI)+BUF
4、扒滾沒立即定址
8OH作為立即數在代碼中