匯編語(yǔ)言第二版王爽課后習(xí)題答案_第1頁(yè)
匯編語(yǔ)言第二版王爽課后習(xí)題答案_第2頁(yè)
匯編語(yǔ)言第二版王爽課后習(xí)題答案_第3頁(yè)
匯編語(yǔ)言第二版王爽課后習(xí)題答案_第4頁(yè)
匯編語(yǔ)言第二版王爽課后習(xí)題答案_第5頁(yè)
已閱讀5頁(yè),還剩72頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1.1

(1)1個(gè)CPU的尋址能力為8KB,那么它的地址總線的寬度為退位。

(2)1KB的存儲(chǔ)器有1024個(gè)存儲(chǔ)單元,存儲(chǔ)單元的編號(hào)從Q到1023。

(3)1KB的存儲(chǔ)器可以存儲(chǔ)8192(2~13)個(gè)bit,1024個(gè)Byte。

(4)1GB是1073741824(2,30)個(gè)Byte、1MB是1048576(2”20)個(gè)Byte、1KB

是是24(210)個(gè)Byte。

(5)8080、8088、80296、80386的地址總線寬度分別為16根、20根、24根、32根,則它

們的尋址能力分別為:理(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)在存儲(chǔ)器中,數(shù)據(jù)和程序以二進(jìn)制形式存放。

解題過(guò)程:

1)1KB=1024B8KB=1024^8=2AN,N=U

2)存儲(chǔ)存儲(chǔ)器的容量是肯為最小單位來(lái)計(jì)算的1KB=1024B

3)8Bit=1Bytel024Byte=1KB(1KB=1024B=1024^8Bit)o

④1GB=1073741822(即2A301MB=1048576R即2A201KB=1024B(即2A10。

5)一個(gè)CPU^TN根地址線地址線,則可個(gè)CPU的地址總地址總線mN。這這樣CPU最多可以尋多

6)8根數(shù)據(jù)總數(shù)據(jù)總線?次法8位二進(jìn)二進(jìn)制數(shù)據(jù)(艮序節(jié)節(jié))

7)808由勺數(shù)據(jù)總數(shù)據(jù)總稅融(即一次傳(即一次為2B)1024B/2B=512同理1024B/4B=256

8)在存儲(chǔ)在存儲(chǔ)器中+踴沒(méi)有任何國(guó)U沒(méi)有任二進(jìn)進(jì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=6246II

movax,bxAX=826cH

addax,bxAX=04D8H

moval,bhAX=0482H

movah,blAX=6C82H

addah,ahAX=D882H

addal,6AX=D888H

addal,alAX=D810H

movax,exAX=6246II

Microsoft(R)WindowsDOS

(C)CopyrightMicrosoftCorp1990-2001.

C:\DOCUME"1\ADMINI"l>debug

-a

0ClC:0100movax,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:O114movah,bl

OC1C:O116addah,ah

OC1C:O118addal,6

OC1C:O11Aaddal,al

OC1C:O11Cmovax,ex

OC1C:O11E

-r

AX=0000BX=OOOOCX=OOOODX=OOOOSP邛FEEBPR000SI-0000DI

=0000

DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=0100NVUPEIPLNZNAP0NC

0ClC:0100B8A3F4MOVAX,F4A3

-t

AX=F4A3BX二0000CX=OOOODX=0000SP=FFEEBP=0000SI二0000DI

=0000

DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=0103NVUPEIPLNZNAPONC

OC1C:O1O3B431MOVAH,31

-t

AX=31A3BX=OOOOcx=ooooDX=OOOOSP=FFEEBP-0000SI=0000DI

=0000

DS=0C1CES=OC1CSS=0C1CCS=OC1CIP=0105NVUPEIPLNZNAP0NC

OC1C:O1O5B023MOVAL,23

-t

AX=3123BX-0000CX=OOOODX=OOOOSP=FFEEBP=OOOOSI=OOOODI

=0000

DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=0107NVUPEIPLNZNAPONC

OC1C:O1O701C0ADDAX,AX

-t

AX=6246BX=OOOOCX二0000DX=OOOOSP=FFEEBP=OOOOSI二0000DI

=0000

DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=0109NVUPEIPLNZNAPONC

OC1C:O1O9BB6C82MOVBX,826C

-t

AX=6246BX=826Ccx=ooooDX=OOOOSP=FFEEBP=OOOOSI=OOOODI

=0000

DS=OC1CES=OC1CSS=OC1CCS=OCICIP=OIOCNVUPEIPLNZNAPONC

OC1C:O1OC89C1MOVCX,AX

-t

AX=6246BX=826CCX=6246DX-0000SP=FFEEBP=OOOOSI=OOOODI

=0000

DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=010ENVUPEIPLNZNAPONC

OC1C:O1OE89D8MOVAX,BX

-t

AX二826cBX=826CCX二6246DX=OOOOSP=FFEEBP=OOOOSI=OOOODI

=0000

DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=0110NVUPEIPLNZNAPONC

OC1C:O11O01D8ADDAX,BX

-t

AX=04D8BX=826CCX=6246DX=OOOOSP=FFEEBP=OOOOSI=OOOODI

=0000

DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=0112OVUPElPLNZACPECY

OC1C:O11288F8MOVAL,BH

-t

AX=0482BX=826CCX=6246DX=OOOOSP=FFEEBP-0000SI=OOOODI

=0000

DS=0C1CES=OC1CSS=OC1CCS=OC1CIP=0114OVUPEIPLNZACPECY

OC1C:O11488DCMOVAH,BL

-t

AX=6C82BX=826CCX=6246DX=OOOOSP=FFEEBP=OOOOSI=0000DI

=0000

DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=0116OVUPEIPLNZACPECY

OC1C:O11600E4ADDAH,AH

-t

AX=D882BX=826CCX=6246DX=OOOOSP=FFEEBP=OOOOSI=0000DI

=0000

DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=0118OVUPEINGNZACPENC

OC1C:O1180406ADDAL,06

-t

AX=D888BX=826CCX二6246DX=OOOOSP=FFEEBP=OOOOSI=0000DI

=0000

DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=011ANVUPEINGNZNAPENC

OC1C:O11AoocoADDAL,AL

-t

AX=D810BX=826CCX=6246DX=OOOOSP二FFEEBP=OOOOSI=0000DI

=0000

DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=OHCOVUPElPLNZACPOCY

OC1C:O11C89C8MOVAX,CX

-t

AX=6246BX=826CCX=6246DX=OOOOSP=FFEEBP二0000S>0000DI

=0000

DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=01IEOVUPEIPLNZACPOCY

OC1C:O11E

OBOCORex,[SI]

DS:0000=20CD

-q

2.1

(2)只能使用目前學(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:\DOCUME'l\ADMINI~Ddebug

-a

0ClC:0100movax,2

OC1C:O1O3addax,ax

OC1C:O1O5addax,ax

OC1C:O1O7addax,ax

OC1C:O1O9

-r

AX二0000BX=0000CX=OOOODX=OOOOSP二FFEEBP=OOOOSI=0000DI

=0000

DS=OCICES=OC1CSS=OC1CCS=OC1CIP=0100NVUPEIPLNZNAPONC

0ClC:0100B80200MOVAX,0002

-t

AX=0002BX=0000cx=ooooDX=OOOOSP=FFEEBP=OOOOSI=0000DI

=0000

DS=0C1CES=OC1CSS-0C1CCS-0C1CIP=0103NVUPEIPLNZNAPONC

OC1C:O1O301C0ADDAX,AX

-t

AX=0004BX=OOOOcx=ooooDX=OOOOSP=FFEEBP二0000S>0000DI

=0000

DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=0105NVUPEIPLNZNAPONC

OC1C:O1O501C0ADDAX,AX

-t

AX二0008BX=OOOOcx=ooooDX=OOOOSP=FFEEBP=OOOOSI=0000DI

=0000

DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=0107NVUPEIPLNZNAPONC

OC1C:O1O701C0ADDAX,AX

-t

AX=0010BX=0000cx=ooooDX=OOOOSP二FFEEBP=0000SI=0000DI

=0000

DS=OCICES=OC1CSS=OC1CCS-0C1C1P=O1O9NVUPElPLNZACPONC

OC1C:O1O9

20881615AND[BX+SI+1516],CL

DS:1516=00

一q

2.2

(1)給定段地址為0001H,僅通過(guò)變化偏移地址尋址,CPU的尋址范圍

為0010H到1OOOFHo

解題過(guò)程:

物理地址=5人*16+£八

EA的變化范圍為Oh'ffffh

物理地址范圍為(SA*16+0h)~(SA*16+ffffh)

現(xiàn)在SA=OOOlh,那么尋址范圍為

(0001h*16+0h)~(000lh*16+ffffh)

=0010h"1000fh

2.2

(2)有一數(shù)據(jù)存放在內(nèi)存20000H單元中,現(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取最大值最,SA=2000h-ffffh/l6=1001hSA為最小值???

EA取最小值最,SA=2000h-0h/16=2000hSA為最大值?

?

這里的ffffH/16=fffh是通過(guò)WIN自帶帶計(jì)算器算

按位移來(lái)算確位移來(lái)算fff.fh這里小數(shù)點(diǎn)后附應(yīng)該是省略r

單就除法來(lái)說(shuō),應(yīng)有番口余數(shù),但此題余數(shù),是地址最大和最小,所以余數(shù)忽略了

?

如果根據(jù)位移的算法(段地址*16=16進(jìn)制左移一位),小數(shù)年后應(yīng)后應(yīng)該是不能省

我們們可以反過(guò)來(lái)再思F,如果SA為1000的勺話話,小數(shù)點(diǎn)后省

SA=lOOOhEA取最大ffffh物理地址為Iffffh將無(wú)法尋將20000彈元

這道題不應(yīng)看成是單細(xì)勺計(jì)算題

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ù)

(1)使用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,0026Hbx=0026H

00d8addal,blax=0040H

00deaddah,blax=2640H

00c7addbh,albx=4026H

b400movah,0ax=0040H

00d8addal,blax=0066Il

049caddal,9CHax=0002H

Microsoft(R)WindowsDOS

(C)CopyrightMicrosoftCorp1990-2001.

C:\D0CUME~l\ADMINOdebug

-a

0ClC:0100movax,4e20

OC1C:O1O3addax,1416

OC1C:O1O6movbx,2000

0C1C:0109addax,bx

OC1C:O1OBmovbx,ax

OC1C:O1ODaddax,bx

OC1C:O1OFmovax,001a

OC1C:O112movbx,0026

OC1C:O115addal,bl

OC1C:O117addah,bl

OC1C:O119addbh,al

OC1C:O11Bmovah,0

OC1C:O11Daddal,bl

OC1C:O11Faddal,9c

OC1C:O121

AX=OOOOBX=OOOOCX=OOOODX=OOOOSP二FFEEBP二0000SI-0000DI

=0000

DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=0100NVUPEIPLNZNAPONC

OC1C:O1OOB8204EMOVAX,4E20

-t

AX=4E20BX二0000CX二0000DX=OOOOSP=FFEEBP=OOOOSI=0000DI

=0000

DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=0103NVUPEIPLNZNAPONC

OC1C:O1O3051614ADDAX,1416

-t

AX=6236BX=OOOOcx=ooooDX=OOOOSP=FFEEBP=OOOOSI=0000DI

=0000

DS=0C1CES=OC1CSS=OCICCS=OCICIP二0106NVUPEIPLNZNAPENC

OC1C:O1O6BB0020MOVBX,2000

-t

AX=6236BX二2000cx=ooooDX二0000SP=FFEEBl^OOOOS>0000DI

=0000

DS=OC1CES=OC1CSS=OC1CCS=OC1CIP二0109NVUPEIPLNZNAPENC

OC1C:O1O901D8ADDAX,BX

-t

AX=8236BX=2000cx=ooooDX=OOOOSP=FFEEBP二0000S>0000DI

=0000

DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=010BOVUPEINGNZNAPENC

OC1C:O1OB89C3MOVBX,AX

-t

AX=8236BX=8236CX=OOOODX=OOOOSP=FFEEBP=OOOOSI=OOOODI

=0000

DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=010DOVUPEINGNZNAPENC

0ClC:010D01D8ADDAX,BX

-t

AX=046CBX=8236CX二0000DX=OOOOSP=FFEEBP=OOOOSI二0000DI

=0000

DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=010FOVUPEIPLNZNAPECY

0ClC:010FB81A00MOVAX,001A

-t

AX=001ABX=8236cx=ooooDX=OOOOSP=FFEEBP=OOOOSI=OOOODI

=0000

DS=OC1CES=OC1CSS=OC1CCS=OCICIP=0112OVUPEIPLNZNAPECY

OC1C:O112BB2600MOVBX,0026

-t

AX二001ABX=0026CX=0000DX-0000SP=FFEEBP=OOOOSI=OOOODI

=0000

DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=0115OVUPEIPLNZNAPECY

OC1C:O11500D8ADDAL,BL

-t

AX=0040BX=0026CX二0000DX=OOOOSP=FFEEBP=OOOOSI=OOOODI

=0000

DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=0117NVUPEIPLNZACPONC

OC1C:O117OODCADDAH,BL

-t

AX=2640BX=0026cx=ooooDX=OOOOSP二FFEEBP=OOOOSI=OOOODI

=0000

DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=0119NVUPElPLNZNAPONC

OC1C:O11900C7ADDBH,AL

-t

AX二2640BX=4026cx=ooooDX=OOOOSP=FFEEBP二0000S>0000DI

=0000

DS=0C1CES=OC1CSS=OC1CCS=OC1CIP=011BNVUPEIPLNZNAPONC

OC1C:O11BB400MOVAH,00

-t

AX=0040BX=4026CX=0000DX=OOOOSP=FFEEBP=OOOOSI=0000DI

=0000

DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=011DNVUPEIPLNZNAP0NC

OC1C:O11D00D8ADDAL,BL

-t

AX=0066BXM026CX=0000DX=OOOOSP=FFEEBP=OOOOSI=0000DI

=0000

DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=011FNVUPEIPLNZNAPENC

OC1C:O11F049CADDAL,9C

-t

AX=0002BX=4026CX=0000DX=0000SP=FFEEBP=0000SI=0000DI

=0000

DS=0C1CES=OC1CSS=OCICCS=OCICIP=0121NVUPEIPLNZACP0CY

OC1C:O121D3990075RCRWORDPTR

[BX+DI+7500],CLDS:B526二0000

一q

實(shí)驗(yàn)一查看CPU和內(nèi)存,用機(jī)器指令和匯編指令編程

⑵將下面的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\ADMINI~Ddebug

-a2000:0

2000:0000movax,1

2000:0003addax,ax

2000:0005jmp2000:0003

2000:0007

-rcs

CS0C1C

:2000

-rip

IP0100

:0000

-r

AX二0000BX=OOOOCX=OOOODX=OOOOSP=FFEEBP二0000SI=OOOODI

=0000

DS=OC1CES=OC1CSS=OC1CCS=2000IP=OOOONVUPEIPLNZNAPONC

2000:0000B80100MOVAX,0001

-t

AX=0001BX=OOOOcx=ooooDX=OOOOSP=FFEEBP=OOOOSI=OOOODI

=0000

DS=OC1CES=OC1CSS=OC1CCS=2000IP=0003NVUPEIPLNZNAPONC

2000:000301C0ADDAX,AX

-t

AX=0002BX二0000cx=ooooDX-0000SP=FFEEBP=OOOOSI二0000DI

=0000

DS=OC1CES=OC1CSS=OC1CCS=2000IP=0005NVUPEIPLNZNAPONC

2000:0005EBFCJMP0003

-t

AX=0002BX=OOOOcx=ooooDX二0000SP=FFEEBP=OOOOSI二0000DI

二0000

DS=OC1CES=OC1CSS=OC1CCS=2000IP=0003NVUPElPLNZNAPONC

2000:000301C0ADDAX,AX

-t

AX=0002BX=OOOOcx=ooooDX=OOOOSP=FFEEBP=OOOOSI=OOOODI

=0000

DS=OC1CES=OC1CSS=OC1CCS=2000IP=0003NVUPEIPLNZNAPONC

2000:000301C0ADDAX,AX

-t

AX=0004BX-0000cx=ooooDX=OOOOSP=FFEEBP=OOOOSI=OOOODI

=0000

DS=OC1CES=OC1CSS=OC1CCS=2000IP=0005NVUPEIPLNZNAPONC

2000:0005EBFCJMP0003

-t

AX二0004BX=OOOOCX二0000DX二0000SP=FFEEBP=OOOOSI=OOOODI

=0000

DS=OC1CES=OC1CSS=OC1CCS=2000IP=0003NVUPEIPLNZNAPONC

2000:000301C0ADDAX,AX

-t

AX=0008BX=0000CX=OOOODX=OOOOSP=FFEEBP=OOOOSI=0000DI

=0000

DS=OC1CES=OC1CSS=OC1CCS=2000IP=0005NVUPEIPLNZNAP0NC

2000:0005EBFCJMP0003

-t

AX=0008BX=OOOOCX=0000DX=OOOOSP=FFEEBP=OOOOSI=0000DI

=0000

DS=OC1CES=OC1CSS=OC1CCS=2000IP=0003NVUPEIPLNZNAP0NC

2000:000301C0ADDAX,AX

-q

實(shí)驗(yàn)一查看CPU和內(nèi)存,用機(jī)器指令和匯編指令編程

(3)查看內(nèi)存中的內(nèi)容

PC主板上的ROM中有個(gè)一出產(chǎn)日期,在內(nèi)存FFF00H-FFFFFH的某幾個(gè)單元中,請(qǐng)找到這個(gè)

出產(chǎn)日期并試圖改變它。

Microsoft(R)WindowsDOS

(C)CopyrightMicrosoftCorp1990-2001.

C:\DOCUME'l\ADMINri>debug

-dffff:0f

FFFF:0000EA5BE000F031322F-32352F303700FC59..12/25/07.,Y

-q

地址C0000~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)存不能修改是片面的。

書(shū)上說(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è)道理吧--

3.1

(1)在DEBUG中,用〃D0:0lf〃查看內(nèi)存,結(jié)果如下:

0000:00007080F030EF6030E2-0080801266202260

0000:00106226E6D6CC2E3C3B-ABBA000026066688

下面的程序執(zhí)行前,AX=0,BX=0,寫(xiě)出每條匯編指令執(zhí)行完后相關(guān)寄存器中的值

movax,1

movds,ax

movax,[0000]ax=2662II

movbx,[0001]bx=E626H

movax,bxax=E626H

movax,[0000]ax=2662H

movbx,[0002]bx=D6E6H

addax,bxax=FD48H

addax,[0004]ax=2cl4H

movax,0ax=0

moval,[0002]ax=OOe6H

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.607

0.3000.e2

0000:000816.0000.80AF.8003.128B.6601.20

70.2200.60

0000:00108B.6201.2670.e600.d6B9.cc06.2e

14.3c02.3b

0000:001840.ab07.ba14.0002.00FF.2603.06

14.6602.88

-d0000:0If

0000:00007080F030EF6030E2-0080801266202260p..0.0....f”

0000:00106226E6D6CC2E3C3B-ABBA000026066688b&.f.

-a

0DB4:0100movax,1

0DB4:0103movds,ax

0DB4:0105movax,[0000]

0DB4:0108movbx,[0001]

0DB4:010Cmovax,bx

0DB4:010Emovax,[0000]

0DB4:0111movbx,[0002]

0DB4:0115addax,bx

0DB4:0117addax,[0004]

0DB4:011Bmovax,0

0DB4:011Emoval,[0002]

0DB4:0121movbx,0

0DB4:0124movbl,[000c]

0DB4:0128addal,bl

0DB4:012A

-r

AX=OOOOBX=OOOOCX=OOOODX=OOOOSP=FFEEBP=OOOOSI=0000DI

=0000

DS=0DB4ES=0DB4SS=0DB4CS-0DB4IP=0100NVUPElPLNZNAPONC

0DB4:0100B80100MOVAX,0001

-t

AX=OOOlBX=OOOOCX=OOOODX=OOOOSP=FFEEBP=OOOOSI=0000DI

=0000

DS=0DB4ES=0DB4SS=0DB4CS=0DB4IP=0103NVUPEIPLNZNAPONC

0DB4:01038ED8MOVDS,AX

-t

AX=0001BX=OOOOCX=OOOODX=OOOOSP=FFEEBP=OOOOSI=OOOODI

=0000

DS二0001ES=0DB4SS=0DB4CS=0DB4IP=0105NVUPEIPLNZNAPONC

0DB4:0105

A10000MOVAX,[0000]

DS:0000=2662

-t

AX=2662BX=OOOOCX=OOOODX=OOOOSP=FFEEBP-0000SI=OOOODI

=0000

l)S=0001ES=0DB4SS=0DB4CS=0DB4IP二0108NVUPEIPLNZNAPONC

0DB4:0108

8B1E0100MOVBX,[0001]

DS:0001=E626

-t

AX=2662BX=E626CX=OOOODX=OOOOSP=FFEEBP=OOOOSI=OOOODI

=0000

DS二0001ES=0DB4SS=0DB4CS=0DB4IP=010CNVUPEIPLNZNAPONC

0DB4:010C89D8MOVAX,BX

-t

AX=E626BX=E626CX=0000DX=OOOOSP=FFEEBP二0000SI-0000DI

=0000

DS=0001ES=0DB4SS=0DB4CS=0DB4IP=010ENVUPEIPLNZNAPONC

0DB4:010E

A10000MOVAX,[0000]

DS:0000=2662

-t

AX=2662BX=E626CX=OOOODX=OOOOSP=FFEEBP=OOOOSI=OOOODI

=0000

DS二0001ES=0DB4SS=0DB4CS=0DB4IP二0111NVUPEIPLNZNAPONC

0DB4:0111

8B1E0200MOVBX,[0002]

DS:0002=D6E6

-t

AX=2662BX=D6E6CX=OOOODX=OOOOSP=FFEEBP=OOOOSI二0000DI

=0000

DS=0001ES=0DB4SS=0DB4CS=0DB4IP=0115NVUPEIPLNZNAPONC

0DB4:011501D8ADDAX,BX

-t

AX=FD48BX=D6E6CX=OOOODX=OOOOSP=FFEEBP=OOOOSI=OOOODI

=0000

DS二0001ES=0DB4SS=0DB4CS=0DB4IP=0117NVUPEINGNZNAPENC

0DB4:0117

03060400ADDAX,[0004]

DS:0004=2ECC

-t

AX=2C14BX=D6E6CX=OOOODX=OOOOSP=FFEEBP-0000SI=OOOODI

=0000

l)S=0001ES=0DB4SS=0DB4CS=0DB4IP二01IBNVUPEIPLNZACPECY

0DB4:0UBB80000MOVAX,0000

-t

AX=0000BX=D6E6CX=OOOODX=OOOOSP=FFEEBP二0000S>0000DI

=0000

DS=0001ES=0DB4SS=0DB4CS=0DB4IP=011ENVUPEIPLNZACPECY

0DB4:011E

A00200MOVAL,[0002]

DS:0002=E6

-t

AX=00E6BX=D6E6CX=0000DX=OOOOSP=FFEEBP=OOOOSI=OOOODI=

0000

DS=0001ES=0DB4SS=0DB4CS=0DB4IP=0121NVUPEIPLNZACPECY

0DB4:0121BBOOOOMOVBX,0000

-t

AX=00E6BX=OOOOCX=0000DX=OOOOSP=FFEEBP=OOOOSI=OOOODI

=0000

DS=0001ES=0DB4SS=0DB4CS=0DB4IP=0124NVUPEIPLNZACPECY

0DB4:0124

8A1E0C00MOVBL,[OOOC]

DS:000026

-t

AX=00E6BX=0026CX=OOOODX=OOOOSP=FFEEBP二0000SI=OOOODI

=0000

DS=OOOlES=0DB4SS=0DB4CS=0DB4IP=0128NVUPEIPLNZACPECY

0DB4:012800D8ADDAL,BL

-t

AX=OOOCBX=0026CX=OOOODX=OOOOSP=FFEEBP=OOOOSI=OOOODI

=0000

DS=0001ES=0DB4SS=0DB4CS=0DB4IP=012ANVUPEIPLNZNAPECY

0DB4:012AC6061799FFMOVBYTEPTR

[9917],FFDS:9917=9A

3.1

⑵訥存中的情況女唱3.6所示

各寄存器的初始值寄cs=2000hjp=O,ds=1OOOh^x=O,bx=0;

①寫(xiě)出CPU執(zhí)行的指令序列(用江緬旨令寫(xiě)出)。

②寫(xiě)出QPU執(zhí)行每條指令后,CS、I麗相關(guān)相涉存器的數(shù)

③再次體會(huì):數(shù)據(jù)和程序有區(qū)別有區(qū)別嗎?如內(nèi)存中的信息哪存中的據(jù)些是程序1

圖3.6內(nèi)存情況示意

指令序列CSIPDSAXBX

初始值2000h0000

1movax,6622h2000h3h06622h0

2jmp0ff0:0100ffOhlOOh06622h0

3movax,2000hffOh103h02000h0

4movds,axffOh105h2000h2000h0

5movax,[8]ffOh108h2000hc389h0

6movax,[2]ffOhlObh2000hea66h0

3.2

(1)補(bǔ)全下面的程序,使其可以將10000H-1000FH中的8個(gè)字,逆序拷貝到20000H-2000FH

中。

movax,1000H

movds,ax

movax,2000H

movss,ax

movsp,10h

push[0]

push[2]

push[4]

push[6]

push⑻

push[A]

push[C]

push

3.2

(2)補(bǔ)全下面的程序,使其可以將10000H-1000FH中的8個(gè)字,逆序拷貝到20000H-2000FH

中。

movax,2000II

movds,ax

movax,1000H

movss,ax

movsp,0

pop[e]

pop[c]

pop[a]

pop[8]

POP[6]

pop[4]

pop⑵

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,⑵;ax=5CCAH

movbx,[4];bx=31F0H

addbx,[6];bx=6122H

pushax;sp=00FEI1,修改的內(nèi)存單元地址是2200:00FE內(nèi)容

為5CCAII

pushbx;sp=00FCH,修改的內(nèi)存單元地址是2200:00FC內(nèi)容

為6122H

popax;sp二OOFCH,ax=6122H

popbx;sp=00FEH,bx=5CCAH

push[4];sp=00FEH,修改的內(nèi)存單元地址是2200:0()FE內(nèi)容為MF0

push[6];sp=00FCH,修改的內(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\ADMINI~Ddebug

-a

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

-r

AX=0000BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI

=0000

DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=0100NVUPEIPLNZNAP0NC

0C1C:0100B8FFFFMOVAX,FFFF

-t

AX=FFFFBX=OOOOCX=OOOODX=OOOOSP=FFEEBP=OOOOSI=OOOODI

=0000

DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=0103NVUPEIPLNZNAPONC

OC1C:O1O38ED8MOVDS,AX

-t

AX二FFFFBX=OOOOCX=0000DX-0000SP=FFEEBP=OOOOSI=OOOODI

=0000

DS=FFFFES=OC1CSS=OC1CCS=OC1CIP=0105NVUPEIPLNZNAPONC

OC1C:O1O5B80022MOVAX,2200

-t

AX二2200BX=OOOOex二0000DX=OOOOSP=FFEEBP=OOOOSI=OOOODI

=0000

DS二FFFFES=OC1CSS=OC1CCS=OC1CIP=0108NVUPEIPLNZNAPONC

OC1C:O1O88ED0MOVSS,AX

-t

AX=2200BX=OOOOcx=ooooDX=OOOOSP=0100BP=OOOOSI=OOOODI

=0000

DS二FFFFES=OC1CSS=2200CS=OC1CIP=010DNVUPEIPLNZNAPONC

0ClC:010D

A10000MOVAX,[0000]

DS:0000=5BEA

-dffff:Of

FFFF:0000EA5BEO00FO31322F-32352F303700FC59..12/25/07..Y

-t

AX=5BEABX=OOOOCX=OOOODX=OOOOSP=0100BP=OOOOSI=OOOODI

=0000

DS二FFFFES=OC1CSS=2200CS=OC1CIP=0110NVUPEIPLNZNAPONC

OC1C:O11O

03060200

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論