1. 8088CPU中的寄存器都是16位,那麼它是如何定址20位物理地址的
8088為了對20位物理地址定址,設置了邏輯地址的概念
表示方式 XXXX:YYYY
對應的物理地址=XXXX*16+YYYY
2. 匯編語言定址方式以及物理地址
1.直接將0ABH放入AX寄存器2.直接將BX寄存器數據放入AX寄存器3.默認定址方式,將段地址2000H(DS寄存器)放入AX寄存器4.指定定址方式,以BX寄存器內容為段地址SI寄存器為偏移地址的數據放入AX寄存器里。段地址加偏移地址等於物理地址,列:段地址2000H進一位等於20000H加偏移地址0001H等於物理地址20001H。具體的忘了,你可以看一下王爽的書,裡面有的
3. 指出定址方式並計算物理地址
第一種是指定段寄存器的方法
具體的物理地址是通過ES和BX來計算的,計算方法和DS:BX的方法一樣,只不過是把DS換成了ES,沒有加段指示前綴的話默認為DS
第二種是MASM提供的一種定址方式
其實映射到指令的話就是"基址+偏移量"的定址方式,SI是基址,VAL在這里代表偏移量,這條指定對應的指令是:
MOV AX,[SI+50H]
第三種和第二種類似
其實就是"基址+變址+偏移量"的定址方式
具體的數值自己計算吧
4. 立即定址與寄存器定址方式有物理地址嗎為什麼
寄存器定址不要計算物理地址,寄存器名就是地址
立即數是在程序存儲區
別的都在 數據區
所以 立即數是永遠燒在ROM里的
PC 執行到那一句 立即數自動就讀進去了
希望採納哦
5. 如何確定程序中某些寄存器的實際物理地址
寄存器是集成電路中非常重要的一種存儲單元,通常由D觸發器組成
6. 寄存器具體是個什麼他的物理地址怎麼看
寄存器是CPU內部的存儲器,不多,只是為了減少數據與內存的交換次數而設置,每個寄存器都有專用的名稱,所以訪問寄存器只需要寫出寄存器的名稱即可。
物理地址是存儲器的地址,在物理位置上看,寄存器在CPU內部,存儲器在CPU外部
7. 請指出下列指令源操作的定址方式,並計算物理地址
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
粗心大意,指令沒有寫逗號,學習態度不端正。另外,隨便找本書看看就有,何必這點小事就問人?
8. 一道微機原理題:請問寄存器定址過程中用計算物理地址嗎
給出段地址和偏移地址,電腦會自動生成物理地址。
9. 源程序中的寄存器變數如何定位到實際的物理地址
將寄存器變數定位到存儲器物理地址方法如下
unsigned char temp_A@0x00; //定義無符號變數temp_A,強制其地址為0x00
unsigned char temp_B@0x100; //定義無符號變數temp_B,強制其地址為0x100
@tiny unsigned char temp_C; //定義無符號變數temp_C,由編譯器自動在地址小於0x100的RAM中為其分配一個地址
@near unsigned char temp_D; //定義無符號變數temp_D,由編譯器自動在地址大於0xFF的RAM中為其分配一個地址
另外也可以採用偽指令"pragma"將函數或者變數定義到指定的section中,例如:
#pragma section [name] // 將下面定義的未初始化變數定義到.name section中
Unsigned char data1;
Unsigned int data2;
10. 已知當前段的寄存器的基址怎樣找物理地址末地址與首地址
段寄存器的內容左移4位(我說的是二進制),就是這個段的首地址了,在這個基礎上加上0ffffh,就是這個段的末地址。因為物理地址=段基地址左移4位+段內偏移地址,其中段內偏移地址是16位。