![《匯編語(yǔ)言》第二版習(xí)題答案(全)_第1頁(yè)](http://file4.renrendoc.com/view/3dc8deae005af5baf65eb6d74ed6497a/3dc8deae005af5baf65eb6d74ed6497a1.gif)
![《匯編語(yǔ)言》第二版習(xí)題答案(全)_第2頁(yè)](http://file4.renrendoc.com/view/3dc8deae005af5baf65eb6d74ed6497a/3dc8deae005af5baf65eb6d74ed6497a2.gif)
![《匯編語(yǔ)言》第二版習(xí)題答案(全)_第3頁(yè)](http://file4.renrendoc.com/view/3dc8deae005af5baf65eb6d74ed6497a/3dc8deae005af5baf65eb6d74ed6497a3.gif)
![《匯編語(yǔ)言》第二版習(xí)題答案(全)_第4頁(yè)](http://file4.renrendoc.com/view/3dc8deae005af5baf65eb6d74ed6497a/3dc8deae005af5baf65eb6d74ed6497a4.gif)
![《匯編語(yǔ)言》第二版習(xí)題答案(全)_第5頁(yè)](http://file4.renrendoc.com/view/3dc8deae005af5baf65eb6d74ed6497a/3dc8deae005af5baf65eb6d74ed6497a5.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
檢測(cè)點(diǎn)1.1
(1)1個(gè)CPU的尋址能力為8KB,那么它的地址總線的寬度為」&位。
(2)1KB的存儲(chǔ)器有1024個(gè)存儲(chǔ)單元,存儲(chǔ)單元的編號(hào)從0到1023。
(3)1KB的存儲(chǔ)器可以存儲(chǔ)8192(2一13)個(gè)bit,1024個(gè)Byte。
(4)1GB是1073741824(2爪0)個(gè)Byte、1MB是1048576(2'20)個(gè)Byte、1KB是1024(2'10)個(gè)
Byte。
(5)8080、8088、80296、80386的地址總線寬度分別為16根、20根、24根、32根,則它們的尋址能力
分別為:里.(KB),J_(MB),_W_(MB)、_4_(GB)?
(6)8080、8088、8086、80286、80386的數(shù)據(jù)總線寬度分別為8根、8根、16根、16根、32根。則它們
一次可以傳送的數(shù)據(jù)為:」_(B)、J_(B)、_2_(B)、_2_(B)、_4_(B)。
(7)從內(nèi)存中讀取1024字節(jié)的數(shù)據(jù),8086至少要讀512次,80386至少要讀256次。
(8)在存儲(chǔ)器中,數(shù)據(jù)和程序以二進(jìn)制形式存放。
解題過(guò)程:
(1)1KB=1O24B,8KB=1024B*8=2"N,N=13?
(2)存儲(chǔ)器的容量是以字節(jié)為最小單位來(lái)計(jì)算的,1KB=1O24B。
(3)8Bit=lByte,1024Byte=lKB(lKB=1024B=1024B*8Bit).
(4)1GB=1O73741824B(W2'30)1MB=1O48576B(HP2-20)1KB=1O24B(即2」0)。
(5)一個(gè)CPU有N根地址線,則可以說(shuō)這個(gè)CPU的地址總線的寬度為N。這樣的CPU最多可以尋找2的N
次方個(gè)內(nèi)存單元。(一個(gè)內(nèi)存單元=lByte)。
<6)8根數(shù)據(jù)總線一次可以傳送8位二進(jìn)制數(shù)據(jù)(即一個(gè)字節(jié))。
(7)8086的數(shù)據(jù)總線寬度為16根(即一次傳送的數(shù)據(jù)為2B)1024B/2B=512,同理1024B/4B=256。
(8)在存儲(chǔ)器中指令和數(shù)據(jù)沒(méi)有任何區(qū)別,都是二進(jìn)制信息。
檢測(cè)點(diǎn)2.1
(1)寫(xiě)出每條匯編指令執(zhí)行后相關(guān)寄存器中的值。
movax,62627AX二F4A3H
movah,31HAX=31A3H
moval,23HAX=3123H
addax,axAX=6246H
movbx,826CHBX=826cH
movex,axCX=6246H
movax,bxAX=826CH
addax,bxAX=04D8H
moval,bhAX=0482H
movah,blAX=6C82H
addah,ahAX=D882H
addal,6AX=D888H
addal,alAX=D810H
movax,exAX=6246H
Microsoft(R)WindowsDOS
(C)CopyrightMicrosoftCorp1990-2001.
C:\D0CUME',l\ADMINri>debug
-a
OC1C:O1OOmovax,f4a3
OC1C:O1O3movah,31
OC1C:O1O5moval,23
OC1C:O1O7addax,ax
OC1C:O1O9movbx,826c
OC1C:O1OCmovex,ax
OC1C:O1OEmovax,bx
OC1C:O11Oaddax,bx
OC1C:O112moval,bh
OC1C:OU4movah,bl
OC1C:O116addah,ah
OC1C:OU8addal,6
OC1C:O11Aaddal,al
OC1C:O11Cmovax,ex
OC1C:O11E
AX=OOOOBX=OOOOCX=OOOODX=OOOOSP=FFEEBP=OOOOSI=0000DI=0000
DS=OC1CES=OC1CSS=OC1CCS=OCICIP=0100NVUPEIPLNZNAPONC
OC1C:O1OOB8A3F4MOVAX,F4A3
-t
AX=F4A3BX=OOOOCX=OOOODX=OOOOSP二FFEEBPR000SI=0000DI=0000
DS=OC1CES=OC1CSS=OC1CCS=OC1CIP-0103NVUPEIPLNZNAPONC
OC1C:O1O3B431MOVAH,31
-t
AX=31A3BX=OOOOCX=OOOODX=OOOOSP:FFEEBP=OOOOSI=0000DI=0000
DS二OC1CES=OC1CSS=OC1CCS=OC1CIP=0105NVUPEIPLNZNAPONC
OC1C:O1O5B023MOVAL,23
-t
AX=3123BX=OOOOCX=OOOODX=OOOOSP=FFEEBP=OOOOSI=0000DI=0000
DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=0107NVUPEIPLNZNAPONC
OC1C:O1O701C0ADDAX,AX
-t
AX=6246BX=OOOOCX=OOOODX=OOOOSP=FFEEBP=OOOOSI=0000DI=0000
DS=OC1CES=OC1CSS=OC1CCS=OCICIP=0109NVUPEIPLNZNAPONC
OC1C:O1O9BB6C82MOVBX,826C
-t
AX=6246BX=826CCX=OOOODX=OOOOSP二FFEEBPR000SI=0000DI=OOOO
DS=OC1CES=OC1CSS=OC1CCS=OC1CIP-0IOCNVUPEIPLNZNAPONC
OC1C:O1OC89C1MOVCX,AX
-t
AX=6246BX=826CCX=6246DX=OOOOSP=FFEEBP=OOOOSI=OOOODI=OOOO
DS二OC1CES=OC1CSS=OC1CCS=OC1CIP=010ENVUPEIPLNZNAPONC
OC1C:O1OE89D8MOVAX,BX
AX=826CBX=826cCX=6246DX=OOOOSP=FFEEBP=0000srooooDI=OOOO
DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=0110NVUPEIPLNZNAPONC
OC1C:O11O01D8ADDAX,BX
AX=04D8BX=826cCX=6246DX=OOOOSP=FFEEBP=0000SI=0000DI=OOOO
DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=0112OVUPEIPLNZACPECY
OC1C:O11288F8MOVAL,BH
AX=0482BX=826CCX=6246DX=OOOOSP=FFEEBP=OOOOSI=OOOODI=OOOO
DS=0C1CES=0C1CSS=OC1CCS=OC1CIP-0114OVUPEIPLNZACPECY
OC1C:O11488DCMOVAH,BL
AX=6C82BX=826CCX=6246DX=OOOOSP二FFEEBP=OOOOSI=0000DI=OOOO
DS-0C1CES=OC1CSS=0C1CCS=OC1CIP-0116OVUPEIPLNZACPECY
OC1C:O11600E4ADDAH,AH
AX=D882BX=826CCX=6246DX=OOOOSP=FFEEBP=OOOOSI=OOOODI=OOOO
DS=OC1CES=OC1CSS=0C1CCS=OC1CIP-0118OVUPEINGNZACPENC
OC1C:O1180406ADDAL,06
AX=D888BX=826CCX=6246DX=OOOOSP二FFEEBP=OOOOSI=0000DI=OOOO
DS=OC1CES=OC1CSS=OC1CCS=0C1CIP-011ANVUPEINGNZNAPENC
OC1C:O11AOOCOADDAL,AL
AX=D810BX=826CCX=6246DX=OOOOSP=FFEEBP=OOOOSI=OOOODI=OOOO
DS=0C1CES=0C1CSS=OC1CCS=OC1CIP-01ICOVUPEIPLNZACPOCY
OC1C:O11C89C8MOVAX,CX
AX=6246BX=826CCX=6246DX=OOOOSP二FFEEBP=OOOOSI=0000DI=OOOO
DS-0C1CES=OC1CSS=0C1CCS=OC1CIP-01IEOVUPEIPLNZACPOCY
OC1C:O11EOBOCORCX,[SI]DS:0000=20CD
一q
檢測(cè)點(diǎn)2.1
⑵只能使用目前學(xué)過(guò)的匯編指令,最多使用4條指令,編程計(jì)算2的4次方。
movax,2AX=2
addax,axAX=4
addax,axAX=8
addax,axAX=16
Microsoft(R)WindowsDOS
(C)CopyrightMicrosoftCorp1990-2001.
C:\DOCUMEl\ADMINI?l>debug
-a
OC1C:O1OOmovax,2
OC1C:O1O3addax,ax
OC1C:O1O5addax,ax
OC1C:O1O7addax,ax
OC1C:O1O9
AX=0000BX=OOOOCX=00001)X=0000SP-FFEEBF^OOOOSI=0000DI=0000
DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=0100NVUPEIPLNZNAPONC
OC1C:O1O()B80200MOVAX,0002
AX=0002BX-0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=0103NVUPEIPLNZNAPONC
OC1C:O1O301C0ADDAX,AX
AX=0004BX=0000CX=OOOODX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=OCICES=OC1CSS=OC1CCS=OC1CIP=0105NVUPEIPLNZNAPONC
OC1C:O1O501C0ADDAX,AX
AX=0008BX-0000CX=OOOODX=0000SP-FFEEBP=0000SI=00001)1=0000
DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=0107NVUPEIPLNZNAPONC
OC1C:O1O701C0ADDAX,AX
AX=0010BX=0000CX=00001)X=0000SP=FFEEBF^OOOOSI=0000DI=0000
DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=0109NVUPEIPLNZACPONC
OC1C:O1O920881615AND[BX+SI+1516],CLDS:1516-00
檢測(cè)點(diǎn)2.2
(1)給定段地址為0001H,僅通過(guò)變化偏移地址尋址,CPU的尋址范圍為001011到1000FH。
解題過(guò)程:
物理地址=5人*16+后代
EA的變化范圍為Oh'ffffh
物理地址范圍為(SA*16+0h)?(SA*16+ffffh)
現(xiàn)在SA=0001h,那么尋址范圍為
(000lh*l6+0h)?(0001h*16+ffffh)
=0010h~1000fh
檢測(cè)點(diǎn)2.2
(2)有一數(shù)據(jù)存放在內(nèi)存2000011單元中,現(xiàn)給定段地址為SA,若想用偏移地址尋到此單元。則SA應(yīng)滿足
的條件是:最小為1001H,最大為2000H。
當(dāng)段地址給定為1001H以卜.和2000H以上,CPU無(wú)論怎么變化偏移地址都無(wú)法尋到20000H單元。
解題過(guò)程:
物理地址=5人*16+£人
20000h=SA*16+EA
SA=(20000h-EA)/16=2000h-EA/16
EA取最大值時(shí),SA=2000h-ffffh/16=100Ih,SA為最小值
EA取最小值時(shí),SA=2000h-0h/16=2000h,SA為最大值
這里的ffffH/16=fffh是通過(guò)WIN白帶計(jì)算器算的
按位移來(lái)算確實(shí)應(yīng)該為fff.fh,這里小數(shù)點(diǎn)后的f應(yīng)該是省略了
單就除法來(lái)說(shuō),應(yīng)有商和余數(shù),但此題要求的是地址最大和最小,所以余數(shù)忽略了
如果根據(jù)位移的算法(段地址*16=16進(jìn)制左移一位),小數(shù)點(diǎn)后應(yīng)該是不能省略的
我們可以反過(guò)來(lái)再思考下,如果SA為1000h的話,小數(shù)點(diǎn)后省略
SA=1000h,EA取最大ffffh,物理地址為Iffffh,將無(wú)法尋到20000H單元
這道題不應(yīng)看成是單純的計(jì)算題
檢測(cè)點(diǎn)2.3
下面的3條指令執(zhí)行后,cpu兒次修改IP?都是在什么時(shí)候?最后IP中的值是多少?
movax,bx
subax,ax
jmpax
答:一共修改四次
第■次:讀取movax,bx之后
第二次:讀取subax,ax之后
第三次:讀取jmpax之后
第四次:執(zhí)行jmpax修改IP
最后IP的值為0000H,因?yàn)樽詈骯x中的值為0000H,所以IP中的值也為0000H
實(shí)驗(yàn)一查看CPU和內(nèi)存,用機(jī)器指令和匯編指令編程
2實(shí)驗(yàn)任務(wù)
(D使用Debug,將下面的程序段寫(xiě)入內(nèi)存,逐條執(zhí)行,觀察每條指令執(zhí)行后,CPU中相關(guān)寄存器中內(nèi)容的
變化。
機(jī)器碼匯編指令寄存器
b8204emovax,4E20Hax=4E20H
051614addax,1416Hax=6236H
bb0020movBX,2000Hbx=2000H
01d8addax,bxax=8236H
89c3movbx,axbx=8236H
01d8addax,bxax=046CH
b8la00movax,001AHax=001AH
bb2600movbx,002611bx=0026H
00d8addal,blax=0040H
00deaddah,blax=2640H
00c7addbh,albx=4026H
b400movah,0ax=0040H
00d8addal,blax=0066H
049caddal,9CHax=0002H
Microsoft(R)WindowsDOS
(C)CopyrightMicrosoftCorp1990-2001.
C:\D0CUME'l\ADMINri>debug
-a
0ClC:0100movax,4e20
0ClC:0103addax,1416
OC1C:O1O6movbx,2000
OC1C:O1O9addax,bx
OC1C:O1OBmovbx,ax
OC1C:O1ODaddax,bx
0ClC:010Fmovax,001a
OC1C:O112movbx,0026
OC1C:O115addal,bl
OC1C:O117addah,bl
OC1C:O119addbh,al
0ClC:011Bmovah,0
OC1C:O11Daddal,bl
OC1C:O11Faddal,9c
OC1C:O121
AX=0000BX=0000CX=OOOODX=OOOOSP=FFEEBP=0000SI=0000DI=0000
DS=OC1CES=OC1CSS=0C1CCS=OC1CIP-0100NVUPEIPLNZNAP0NC
0ClC:0100B8204EMOVAX,4E20
AX=4E20BX=0000CX=OOOODX=OOOOSP:FFEEBP=OOOOSI=0000DI=0000
DS=OC1CES=OC1CSS=OC1CCS=OC1CIP-0103NVUPEIPLNZNAPONC
OC1C:O1O3051614ADDAX,1416
AX=6236BX=OOOOCX=OOOODX=OOOOSP:FFEEBP=OOOOSI=0000DI=OOOO
DS=OC1CES=OC1CSS=0C1CCS=OC1CIP=0106NVUPEIPLNZNAPENC
OC1C:O1O6BB0020MOVBX,2000
AX=6236BX=2000CX=OOOODX=OOOOSP二FFEEBP=OOOOSI=0000DI=0000
DS=0C1CES=OC1CSS=0C1CCS=OC1CIP-0109NVUPEIPLNZNAPENC
OC1C:O1O901D8ADDAX,BX
-t
AX=8236BX=2000CX=0000DX=OOOOSP=FFEEBP=0000SI=OOOODI=0000
DS=OC1CES-0C1CSS=0C1CCS=OC1CIP-01OBOVUPEINGNZNAPENC
OC1C:O1OB89C3MOVBX,AX
AX=8236BX=8236CX=OOOODX=OOOOSP二FFEEBP=OOOOSI=0000DI=0000
DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=010DOVUPEINGNZNAPENC
OC1C:O1OD01D8ADDAX,BX
AX=046cBX=8236CX=0000DX=OOOOSP=FFEEBP=0000SI=0000DI=OOOO
DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=010FOVUPEIPLNZNAPECY
OC1C:O1OFB81A00MOVAX,001A
AX=001ABX=8236CX=OOOODX=OOOOSPnFFEEBP=0000SI=OOOODI=OOOO
DS=OC1CES=OC1CSS=0C1CCS=OC1CIP-0112OVUPEIPLNZNAPECY
OC1C:O112BB2600MOVBX,0026
AX=OOIABX=0026CX=OOOODX=OOOOSP二FFEEBP=OOOOSI=0000DI=0000
DS=OC1CES=OC1CSS=OC1CCS=OC1CIP-0115OVUPEIPLNZNAPECY
OC1C:O11500D8ADDAL,BL
AX=0040BX=0026CX=OOOODX=OOOOSP:FFEEBP=OOOOSI=0000DI=OOOO
DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=0117NVUPEIPLNZACPONC
OC1C:O117OODCADDAH,BL
AX=2640BX=0026CX=OOOODX=OOOOSP二FFEEBP=OOOOSI=0000DI=OOOO
DS=0C1CES=OC1CSS=0C1CCS=OC1CIP-0119NVUPEIPLNZNAPONC
OC1C:O11900C7ADDBH,AL
AX=2640BX=4026CX=OOOODX=OOOOSPnFFEEBP=0000SI=OOOODI=OOOO
DS=OC1CES=OC1CSS=0C1CCS=OC1CIP-01IBNVUPEIPLNZNAPONC
OC1C:O11BB400MOVAH,00
AX=0040BX=4026CX=OOOODX=OOOOSP:FFEEBP=OOOOSI=0000DI=OOOO
DS=OC1CES=OC1CSS=OC1CCS=OC1CIP-01IDNVUPEIPLNZNAPONC
OC1C:O11D00D8ADDAL,BL
AX=0066BX=4026CX=OOOODX=OOOOSP:FFEEBP=OOOOSI=0000DI=OOOO
DS=OC1CES=OC1CSS=0C1CCS=OC1CIP=01IFNVUPEIPLNZNAPENC
OC1C:O11F049CADDAL,9C
-t
AX=0002BX=4026CX=OOOODX=OOOOSP二FFEEBP=OOOOSI=0000DI=OOOO
DS=0C1CES=OC1CSS=0C1CCS=OC1CIP-0121NVUPEIPLNZACPOCY
OC1C:O121D3990075RCRWORDPTR[BX+DI+7500],CLDS:B526=0000
一q
實(shí)驗(yàn)一查看CPU和內(nèi)存,用機(jī)器指令和匯編指令編程
(2)將下面的3條指令寫(xiě)入從2000:0開(kāi)始的內(nèi)存單元中,利用這3條指令計(jì)算2的8次方。
movax,1
addax,ax
jmp2000:0003
Microsoft(R)WindowsDOS
(C)CopyrightMicrosoftCorp1990-2001.
C:\DOCUME'l\ADMINri>debug
-a2000:0
2000:0000movax,1
2000:0003addax,ax
2000:0005jmp2000:0003
2000:0007
-rcs
CS0C1C
:2000
-rip
IP0100
:0000
-r
AX=0000BX=0000CX=OOOODX=OOOOSP二FFEEBP=0000SI=0000DI=0000
DS=OC1CES=OC1CSS=OC1CCS=2000IP-0000NVUPEIPLNZNAPONC
2000:0000B80100MOVAX,0001
-t
AX=0001BX=OOOOCX=OOOO1)X=0000SP=FFEEBP=0000SI=0000DI=0000
DS=OC1CES=OC1CSS=OC1CCS=2000IP=0003NVUPEIPLNZNAPONC
2000:000301C0ADDAX,AX
-t
AX=0002BX=OOOOCX=00001)X=0000SP=FFEEBP=OOOOSI=0000DI=OOOO
DS=OC1CES=OC1CSS=OC1CCS=2000IP=0005NVUPEIPLNZNAPONC
2000:0005EBFCJMP0003
-t
AX=0002BX-0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=OC1CES=OC1CSS=OC1CCS=2000IP=0003NVUPEIPLNZNAPONC
2000:000301C0ADDAX,AX
-t
AX=0002BX=0000CX=OOOODX=OOOOSP二FFEEBP=0000SI=0000DI=0000
DS=OC1CES=OC1CSS=OC1CCS=2000IP-0003NVUPEIPLNZNAPONC
2000:000301C0ADDAX,AX
-t
AX=0004BX=OOOOCX=OOOODX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=OC1CES=OC1CSS=OC1CCS=2000IP=0005NVUPEIPLNZNAPONC
2000:0005EBFCJMP0003
-t
AX=0004BX=OOOOCX=00001)X=0000SP=FFEEBP=OOOOSI=0000DI=0000
DS=OC1CES=OC1CSS=OC1CCS=2000IP=0003NVUPEIPLNZNAPONC
2000:000301C0ADDAX,AX
AX=0008BX=OOOOCX=OOOODX=OOOOSP=FFEEBP=OOOOSI=OOOODI=OOOO
DS=OC1CES=OC1CSS=0C1CCS=2000IP=0005NVUPEIPLNZNAPONC
2000:0005EBFCJMP0003
AX=0008BX=OOOOCX=OOOODX=OOOOSP=FFEEBP=OOOOSI=0000DI=OOOO
DS=OC1CES=OC1CSS=0C1CCS=2000IP=0003NVUPEIPLNZNAPONC
2000:000301C0ADDAX,AX
-q
實(shí)驗(yàn)?查看CPU和內(nèi)存,用機(jī)器指令和匯編指令編程
(3)查看內(nèi)存中的內(nèi)容
PC主:板上的ROM中有個(gè)?出產(chǎn)日期,在內(nèi)存FFFOOH-FFFFFH的某兒個(gè)單元中,請(qǐng)找到這個(gè)出產(chǎn)日期并試圖
改變它。
Microsoft(R)WindowsDOS
(C)CopyrightMicrosoftCorp1990-2001.
C:\D0CUME'l\ADMINri>debug
-dffff:Of
FFFF:0000EA5BE000F031322F-32352F303700FC59..12/25/07..Y
地址COOOO'FFFFF的內(nèi)存單元為只讀存儲(chǔ)器,寫(xiě)入數(shù)據(jù)操作是無(wú)效的。
因此出產(chǎn)日期無(wú)法改變。
下面內(nèi)容摘自于網(wǎng)上
還有另一種情況,如果你發(fā)現(xiàn)你能修改ROM中的生產(chǎn)日期,那么原因如下:
每個(gè)計(jì)算機(jī)的結(jié)構(gòu)都不?樣,教材考慮的是普通8086PC機(jī)上的效果,個(gè)別計(jì)算機(jī)的效果可能不同。
也就是說(shuō)在你的計(jì)算機(jī)中這個(gè)內(nèi)存是可修改的
所以,認(rèn)為所有的計(jì)算機(jī)某些地址的內(nèi)存不能修改是片面的。
廿上說(shuō)rom是只讀的你就不去驗(yàn)證了嗎?如何驗(yàn)證呢?
我覺(jué)得這個(gè)實(shí)驗(yàn)最大的好處不是讓我們驗(yàn)證了這個(gè)知識(shí)點(diǎn),而是提醒我們要有懷疑的精神,懷疑之后再去
驗(yàn)證才能跟深刻的理解知識(shí),提升自己的能力,甚至還會(huì)發(fā)現(xiàn)有些書(shū)上描述的不準(zhǔn)確甚至錯(cuò)誤的地方。
一引用這兒本書(shū)綜合研究的三個(gè)問(wèn)題:
都再用,我們就非得用嗎?
規(guī)定了,我們就只知道遵守嗎?
司空見(jiàn)慣,我們就不懷疑了嗎?
盡信書(shū)不如無(wú)書(shū)大概也有這個(gè)道理吧;一
檢測(cè)點(diǎn)3.1
(1)在DEBUG中,用〃D0:0If"查看內(nèi)存,結(jié)果如下:
0000:00007080F030EF6030E2-0080801266202260
0000:00106226E61)6CC2E3C3B-ABBA000026066688
下面的程序執(zhí)行前,AX=O,BX=O,寫(xiě)出每條匯編指令執(zhí)行完后相關(guān)寄存器中的值
movax,1
movds,ax
movax,[0000]ax=2662H
movbx,[0001]bx=E626H
movax,bxax=E626H
movax,[0000]ax=2662H
movbx,[0002]bx二D6E6H
addax,bxax=FD48H
addax,[0004]ax=2C14H
movax,0ax二0
moval,[0002]ax=00e6H
movbx,0bx=0
movbl,[000c]bx二0026H
addal,blax=OOOCH
用DEBUG進(jìn)行驗(yàn)證:
Microsoft(R)WindowsDOS
(C)CopyrightMicrosoftCorp1990-2001.
C:\D0CUME"l\000>debug
-e0000:0
0000:000068.7010.80A7.fO00.308B.ef01.6070.3000.e2
0000:000816.0000.80AF.8003.128B.6601.2070.2200.60
0000:00108B.6201.2670.e600.d6B9.cc06.2e14.3c02.3b
0000:001840.ab07.ba14.0002.00FF.2603.0614.6602.88
-d0000:0If
0000:00007080FO30EF60301E2-0080801266202260p..0.'0....f〃、
0000:00106226E6D6CC2E3C:3B-ABBA000026066688b&....&.f.
-a
0DB4:0100movax,1
0DB4:0103movds,
0DB4:0105movax,[0000]
0DB4:0108movbx,[0001]
0DB4:010Cmovax,bx
0DB4:010Emovax,[0000]
0DB4:0111movbx,[0002]
0I)B4:0115addax,bx
0I)B4:0117addax,[0004]
0DB4:011Bmovax,0
0DB4:011Emoval,[0002]
0I)B4:0121movbx,0
0DB4:0124movbl,[000c]
0DB4:0128addal,bl
0DB4:012A
-r
AX=OOOOBX=OOOOCX=OOOO1DX=OOOOSP=FFEEBP=OOOOSI=0000DI=0000
DS=0DB4ES=0DB4SS=0DB4(CS=0DB4IP=0100NVUPEIPLNZNAPONC
0DB4:0100B80100MOVFAX,0001
-t
AX=0001BX=0000CX=0000DX=OOOOSP=FFEEBP=0000SI=0000DI=0000
DS=0DB4ES=0DB4SS=0DB4CS=0DB4IP=0103NVUPEIPLNZNAPONC
0DB4:01038ED8MOVDS,AX
-t
AX=0001BX=OOOOCX=OOOODX=OOOOSP=FFEEBP=OOOOSI=0000DI=0000
DS=0001ES=0DB4SS=0DB4CS=0DB4IP=0105NVUPEIPLNZNAPONC
0DB4:0105A10000MOVAX,[0000]DS:0000=2662
-t
AX=2662BX=OOOOiCX=OOOODX=OOOOSP二FFEEBP=OOOOSI=0000DI=0000
DS=0001ES=0DB4:SS=0DB4CS=0DB4IP=0108NVUPEIPLNZNAPONC
0DB4:01088B1E0100MOVBX,[0001]DS:0001=E626
AX=2662BX=E626CX=OOOODX=OOOOSP=FFEEBP=OOOOSI=0000DI=OOOO
DS=OOO1ES=0DB4SS=0DB4CS=0DB4IP=O1OCNVUPEIPLNZNAPONC
0DB4:010C89D8MOVAX,BX
AX=E626BX=E626CX=OOOODX=OOOOSP二FFEEBP=OOOOSI=0000DI=OOOO
DS二OOO1ES=0DB4SS=0DB4CSRDB4IP=010ENVUPEIPLNZNAPONC
0DB4:010EA10000MOVAX,[0000]DS:0000=2662
-t
AX=2662BX=E626CX=0000DX=OOOOSP=FFEEBP=0000SI=0000DI=OOOO
DS=0001ES=0DB4SS=0DB4CS=0DB4IP=0111NVUPEIPLNZNAPONC
0DB4:01118B1E0200MOVBX,[0002]DS:0002=D6E6
-t
AX=2662BX=D6E6CiX=OOOODX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=0001ES=0DB4S:S=0DB4CS=0DB4IP=0115NVUPEIPLNZNAPONC
0DB4:011501D8ADDAX,BX
-t
AX=FD48BX=D6E6C(X=OOOODX=0000SP=FFEEBP-0000SI=0000DI=OOOO
DS=0001ES=0DB4S:S=0DB4CSRDB4IP=0117NVUPEINGNZNAPENC
0DB4:011703060400ADDAX,[0004]DS:0004=2ECC
-t
AX=2C14BX=D6E6(CX=OOOODX=OOOOSP二FFEEBPR000SI=0000DI=OOOO
DS=0001ES=0DB4:SS=0DB4CS=0DB4IP=01IBNVUPEIPLNZACPECY
0DB4:011BB80000MOVAX,0000
-t
AX=OOOOBX=D6E6C(X=OOOODX=0000SP=FFEEBP=0000SI=OOOODI=OOOO
DS=0001ES=0DB4:SS=0DB4CS=0DB4IP=0UENVUPEIPLNZACPECY
0DB4:011EA00200MOVAL,[0002]DS:0002=E6
-t
AX=00E6BX-D6E6C(X=OOOODX=0000SP=FFEEBI^OOOOSI=0000DI=0000
DS=0001ES=0DB4:SS=0DB4CS=0DB4IP=0121NVUPEIPLNZACPECY
0DB4:0121BBOOOOMOVBX,0000
-t
AX=00E6BX=OOOOC(X=OOOODX=OOOOSP=FFEEBP=OOOOSI=OOOODI=OOOO
DS=0001ES=0DB4S:S=0DB4CS=0DB4IP=0124NVUPEIPLNZACPECY
0DB4:01248A1E0C00MOVBL,[OOOC]DS:000026
-t
AX=00E6BX=0026(CX=OOOODX=OOOOSP:FFEEBPR000SI=OOOODI=OOOO
DS=0001ES=0DB4S:S=0DB4CS=0DB4IP=0128NVUPEIPLNZACPECY
0I)B4:012800D8ADDAL,BL
-t
AX=OOOCBX=0026C(X=0000DX=OOOOSP=FFEEBP=0000srooooDI=OOOO
DS=0001ES=0DB4S:S=0DB4CS=0DB4IP=012ANVUPEIPLNZNAPECY
0DB4:012AC6061799FFMOVBYTEPTR[9917],FFDS:9917=9A
-q
檢測(cè)點(diǎn)3.1
(2)內(nèi)存中的情況如圖3.6所示
各寄存器的初始值:cs=2000h,ip=O,ds=1000h,ax=0,bx=0;
①寫(xiě)出CPU執(zhí)行的指令序列(用匯編指令寫(xiě)出)。
②寫(xiě)出CPU執(zhí)行每條指令后,CS、IP和相關(guān)寄存器的數(shù)值。
③再次體會(huì):數(shù)據(jù)和程序有區(qū)別嗎?如何確定內(nèi)存中的信息哪些是數(shù)據(jù),哪些是程序?
10000H}mov20000H—BS}mov
1000IH00ax#2000H20001H22&X,6622H
10002H202OOO2H66
10003H8E}mov20003HEA
ds/AX
10004HD820004H00
I0005HAl}mov2OOO5H01,jmp0ff0:0100
I0006H08axr(0008)20006HF0
10007H002OOO7HOF.
10008HAl20008H89}mov
}movbx,ax
10009H02ax,(0002)20009HC3
10C0AH002000AH
1000BH2000BH
1000CH2000CH
033.6內(nèi)存情況示意
圖3.6內(nèi)存情況示意
指令序列CSIPDSAXBX
初始值2000h00()0
1movax,6622h2000h3h06622h0
2jmp0ff0:0100ffOhlOOh06622h0
3movax,2000hffOh103h02000h0
4movds,axffOh105h2000h2000h0
5movax,[8]ffOh108h2000hc389h0
6movax,[2]ffOhlObh2000hea66h0
檢測(cè)點(diǎn)3.2
(1)補(bǔ)全下面的程序,使其可以將10000H-1000FH中的8個(gè)字,逆序拷貝到20000H-2000FH中。
movax,1000H
movds,ax
movax,2000H
movss,ax
movsp,lOh
ru
LO
r2T
LJ
r4T
LJ
r6T
LJI
r8u
L
A
rT
LJ
C
ru
LE
rJ
L
檢測(cè)點(diǎn)3.2
(2)補(bǔ)全下面的程序,使其可以將1OOOOH-1OOOFH中的8個(gè)字,逆序拷貝到20000H-2000FH中。
movax,2000H
movds,ax
movax,1000H
movss,ax
movsp,0
pop[e]
pop[c]
pop[a]
pop[8]
pop[6]
pop[4]
pop[2]
pop[0]
實(shí)驗(yàn)2用機(jī)器指令和匯編指令編程
(1)使用DEBUG,將上面的程序段寫(xiě)入內(nèi)存,逐條執(zhí)行,根據(jù)指令執(zhí)行后的實(shí)際運(yùn)行情況填空。
movax,ffff
movds,ax
movax,2200
movss,ax
movsp,0100
movax,[0]ax=5BEAH
addax,[2]ax=5CCAH
movbx,[4]bx=31F0H
addbx,[6]bx=6122H
pushax;sp=OOFEH,修改的內(nèi)存單元地址是2200:00FE內(nèi)容為5CCAH
pushbx;sp=OOFCH,修改的內(nèi)存單元地址是2200:OOFC內(nèi)容為6122H
popax;sp=OOFCH,ax=6122H
popbx;sp=OOFEH,bx=5CCAH
push[4];sp=OOFEH,修改的內(nèi)存單元地址是2200:OOFE內(nèi)容為31F0
push[6];sp=OOFCH,修改的內(nèi)存單元地址是2200:00FC內(nèi)容為2F32
此實(shí)驗(yàn)答案不定,需根據(jù)每臺(tái)機(jī)器的實(shí)際運(yùn)行情況。
Microsoft(R)WindowsDOS
(C)CopyrightMicrosoftCorp1990-2001.
C:\DOCUME'l\ADMINri>debug
0ClC:0100movax,ffff
OC1C:O1O3movds,ax
OC1C:O1O5movax,2200
OC1C:O1O8movss,ax
OC1C:O1OAmovsp,0100
OC1C:O1ODmovax,[0]
OC1C:O11Oaddax,[2]
OC1C:O114movbx,[4]
OC1C:O118addbx,[6]
OC1C:O11Cpushax
OC1C:O11Dpushbx
OC1C:O11Epopax
OC1C:O11Fpopbx
OC1C:O12Opush[4]
OC1C:O124push[6]
OC1C:O128
AX=OOOOBX=OOOOCX=OOOODX=OOOOSP=FFEEBP=OOOOSI=0000DI=0000
DSRC1CES=0C1CSS=OC1CCS=OC1CIP=0100NVUPEIPLNZNAPONC
OC1C:O1OOB8FFFFMOVAX,FFFF
AX=FFFFBX=OOOOCX=OOOODX=OOOOSP=FFEEBP=OOOOSI=0000DI=0000
DS=OC1CES=OC1CSS=0C1CCS=OC1CIP=0103NVUPEIPLNZNAPONC
OC1C:O1O38ED8MOVDS,AX
AX=FFFFBX=OOOOCX=OOOODX=OOOOSP=FFEEBP=OOOOSI=0000DI=0000
DS二FFFFES=OC1CSS=0C1CCS=OC1CIP=0105NVUPEIPLNZNAPONC
OC1C:O1O5B80022MOVAX,2200
AX=2200BX=0000CX=00001)X=0000SP-FFEEBF^OOOOSI=0000DI=0000
DS二FFFFES=OC1CSS=OC1CCS=OC1CIP=0108NVUPEIPLNZNAPONC
OC1C:O1O88ED0MOVSS,AX
AX=2200BX-0000CX=OOOODX=OOOOSP-0100BP=0000SI=0000DI=0000
DS=FFFFES=OC1CSS=2200CS=OC1CIP=010DNVUPEIPLNZNAPONC
OC1C:O1ODA10000MOVAX,[0000]DS:0000=5BEA
-df
FFFF:0000EA5BEO00FO31322F-32352F303700FC59[...12/25/07..Y
AX=5BEABX-0000CX=OOOODX=0000SP-0100BP=0000S1=0000DI=0000
DSnFFFFES=OC1CSS=2200CS=OC1CIP=0110NVUPEIPLNZNAPONC
OC1C:O11O03060200ADDAX,[0002]DS:0002=00E0
AX=5CCABX=0000CX=OOOODX=0000SP-0100BP=0000SI=0000DI=0000
DS二FFFFES=OC1CSS=2200CS=OC1CIP=0114NVUPEIPLNZNAPENC
OC1C:O1148B1E0400MOVBX,[0004]DS:0004=3IFO
AX=5CCABX-31F0CX=0000DX=0000SP=0100BP=0000SI=0000DI=0000
DS二FFFFES=OC1CSS=2200CS=OC1CIP=0118NVUPEIPLNZNAPENC
OC1C:O118031E0600ADDBX,[0006]DS:0006=2F32
AX=5CCABX=6122CX=0000DX=0000SP=0100BP=OOOOSI=0000DI=OOOO
DS二FFFFES=0C1CSS=2200CS=OC1CIP二01ICNVUPEIPLNZNAPENC
OC1C:O11C50PUSHAX
AX=5CCABX=6122CX=OOOODX=OOOOSP=OOFEBP=OOOOSI=OOOODI=OOOO
DS二FFFFES=OC1CSS=2200CS=OC1CIP二01IDNVUPEIPLNZNAPENC
OC1C:O11D53PUSHBX
AX=5CCABX=6122CX=OOOO1)X=OOOOSP=OOFCBP=OOOOSI=0000DI=OOOO
DS二FFFFES=0C1CSS=2200CS=0C1C
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國(guó)骨科3D打印設(shè)備行業(yè)市場(chǎng)發(fā)展現(xiàn)狀及投資策略咨詢(xún)報(bào)告
- 入職申請(qǐng)合同范本
- 買(mǎi)土石方工程合同范本
- 鄉(xiāng)村房屋收購(gòu)合同范本
- 街道門(mén)面房出租經(jīng)營(yíng)合同范本
- 供車(chē)簡(jiǎn)易合同范例
- 前程無(wú)憂合同范本
- 公路維護(hù)施工合同范例
- 冷藏合同范本
- 2025年度數(shù)據(jù)中心電力保障與供水應(yīng)急響應(yīng)合同
- 2025年買(mǎi)賣(mài)個(gè)人房屋合同(4篇)
- 武漢2025年湖北武漢理工大學(xué)管理人員招聘筆試歷年參考題庫(kù)附帶答案詳解
- 使用錯(cuò)誤評(píng)估報(bào)告(可用性工程)模版
- 客服人員績(jī)效考核評(píng)分表
- GB/T 8944.1-2008紙漿成批銷(xiāo)售質(zhì)量的測(cè)定第1部分:漿板漿包及漿塊(急驟干燥漿)漿包
- 初中七 八年級(jí)生物思維導(dǎo)圖大全 張
- 婆媳關(guān)系證明
- 江蘇宿遷家鄉(xiāng)介紹旅游課件
- 文化差異與跨文化交際課件(完整版)
- 臭和味檢測(cè)原始記錄表
- 變壓器檢修風(fēng)險(xiǎn)分析及管控措施
評(píng)論
0/150
提交評(píng)論