本人也是第一次學習境钟,如有錯誤沾歪,還請各位大佬指正诬滩!
檢測點1.1
(1)1個CPU的尋址能力為8KB,那么它的地址總線的寬度為 13位踩官。
(2)1KB的存儲器有 1024 個存儲單元却桶,存儲單元的編號從 0 到 1023 。
(3)1KB的存儲器可以存儲 8192個bit蔗牡, 1024個Byte颖系。
(4)1GB是 1073741824 (2^30)個Byte、1MB是 1048576(2^20)個Byte辩越、1KB是 1024(2^10)個Byte嘁扼。
(5)8080、8088黔攒、80296趁啸、80386的地址總線寬度分別為16根、20根督惰、24根不傅、32根,則它們的尋址能力分別為: 64 (KB)赏胚、 1 (MB)访娶、 16 (MB)、 4 (GB)觉阅。
(6)8080崖疤、8088、8086典勇、80286劫哼、80386的數(shù)據(jù)總線寬度分別為8根、8根割笙、16根权烧、16根、32根伤溉。則它們一次可以傳送的數(shù)據(jù)為: 1 (B)般码、 1 (B)、 2 (B)谈火、 2 (B)、 4 (B)舌涨。
(7)從內(nèi)存中讀取1024字節(jié)的數(shù)據(jù)糯耍,8086至少要讀 512 次扔字,80386至少要讀 256 次。
(8)在存儲器中温技,數(shù)據(jù)和程序以 二進制 形式存放革为。
解題過程:
(1)1KB=1024B,8KB=1024B*8=2^N舵鳞,N=13震檩。
(2)存儲器的容量是以字節(jié)為最小單位來計算的,1KB=1024B蜓堕。
(3)8Bit=1Byte抛虏,1024Byte=1KB(1KB=1024B=1024B*8Bit)。
(4)1GB=1073741824B(即2^30)1MB=1048576B(即2^20)1KB=1024B(即2^10)套才。
(5)一個CPU有N根地址線迂猴,則可以說這個CPU的地址總線的寬度為N。這樣的CPU最多可以尋找2的N次方個內(nèi)存單元背伴。(一個內(nèi)存單元=1Byte)沸毁。
(6)8根數(shù)據(jù)總線一次可以傳送8位二進制數(shù)據(jù)(即一個字節(jié))。
(7)8086的數(shù)據(jù)總線寬度為16根(即一次傳送的數(shù)據(jù)為2B)1024B/2B=512傻寂,同理1024B/4B=256息尺。
(8)在存儲器中指令和數(shù)據(jù)沒有任何區(qū)別,都是二進制信息疾掰。
【2020.7.20】
檢測點2.1
(1) 寫出每條匯編指令執(zhí)行后相關(guān)寄存器中的值搂誉。
mov ax,62627?? AX=F4A3H?
mov ah,31H???? AX=31A3H?
mov al,23H???? AX=3123H?
add ax,ax????? AX=6246H?
mov bx,826CH?? BX=826CH?
mov cx,ax????? CX=6246H?
mov ax,bx????? AX=826CH?
add ax,bx????? AX=04D8H?
mov al,bh???? ?AX=0482H?
mov ah,bl????? AX=6C82H?
add ah,ah????? AX=D882H?
add al,6?????? AX=D888H?
add al,al????? AX=D810H?
mov ax,cx????? AX=6246H
(2) 計算2的四次方
mov ax,2 AX=2
add ax,ax AX=4
add ax,ax AX=8
add ax,ax AX=16
【2020.7.20】
檢測點2.2
(1) 給定段地址為0001H,僅通過變化偏移地址尋址个绍,CPU的尋址范圍為 0010H 到 1000FH 勒葱。
解題過程:
物理地址=SA*16+EA???
EA的變化范圍為0h~ffffh???
物理地址范圍為(SA*16+0h)~(SA*16+ffffh)???
現(xiàn)在SA=0001h,那么尋址范圍為???
(0001h*16+0h)~(0001h*16+ffffh)???
=0010h~1000fh????
(2) 有一數(shù)據(jù)存放在內(nèi)存20000H單元中,現(xiàn)給定段地址為SA巴柿,若想用偏移地址尋到此單元凛虽。則SA應(yīng)滿足的條件是:最小為 1001H ,最大為 2000H 广恢。
當段地址給定為?1001H 以下和 2000H 以上凯旋,CPU無論怎么變化偏移地址都無法尋到20000H單元。
解題過程:
物理地址=SA*16+EA???
20000h=SA*16+EA???
SA=(20000h-EA)/16=2000h-EA/16???
EA取最大值時,SA=2000h-ffffh/16=1001h,SA為最小值???
EA取最小值時,SA=2000h-0h/16=2000h,SA為最大值?
這里的ffffH/16=fffh是通過WIN自帶計算器算的
按位移來算確實應(yīng)該為fff.fh,這里小數(shù)點后的f應(yīng)該是省略了
單就除法來說钉迷,應(yīng)有商和余數(shù)至非,但此題要求的是地址最大和最小,所以余數(shù)忽略了
如果根據(jù)位移的算法(段地址*16=16進制左移一位)糠聪,小數(shù)點后應(yīng)該是不能省略的
我們可以反過來再思考下荒椭,如果SA為1000h的話,小數(shù)點后省略
SA=1000h,EA取最大ffffh舰蟆,物理地址為1ffffh趣惠,將無法尋到20000H單元
這道題不應(yīng)看成是單純的計算題
【2020.7.20】
檢測點2.3
下面的3條指令執(zhí)行后狸棍,cpu幾次修改IP?都是在什么時候味悄?最后IP中的值是多少草戈??
movax,bx?
subax,ax?
jmpax?
答:一共修改四次
第一次:讀取movax,bx之后?
第二次:讀取subax,ax之后?
第三次:讀取jmp
ax之后?
第四次:執(zhí)行jmp
ax修改IP?
最后IP的值為0000H,因為最后ax中的值為0000H侍瑟,所以IP中的值也為0000H?
【2020.7.20】