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

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論