版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
检测点1.1
(1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为」&位。
(2)1KB的存储器有1024个存储单元,存储单元的编号从0到1023。
(3)1KB的存储器可以存储8192(2一13)个bit,1024个Byte。
(4)1GB是1073741824(2爪0)个Byte、1MB是1048576(2'20)个Byte、1KB是1024(2'10)个
Byte。
(5)8080、8088、80296、80386的地址总线宽度分别为16根、20根、24根、32根,则它们的寻址能力
分别为:里.(KB),J_(MB),_W_(MB)、_4_(GB)„
(6)8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16根、32根。则它们
一次可以传送的数据为:」_(B)、J_(B)、_2_(B)、_2_(B)、_4_(B)。
(7)从内存中读取1024字节的数据,8086至少要读512次,80386至少要读256次。
(8)在存储器中,数据和程序以二进制形式存放。
解题过程:
(1)1KB=1O24B,8KB=1024B*8=2"N,N=13«
(2)存储器的容量是以字节为最小单位来计算的,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)一个CPU有N根地址线,则可以说这个CPU的地址总线的宽度为N。这样的CPU最多可以寻找2的N
次方个内存单元。(一个内存单元=lByte)。
<6)8根数据总线一次可以传送8位二进制数据(即一个字节)。
(7)8086的数据总线宽度为16根(即一次传送的数据为2B)1024B/2B=512,同理1024B/4B=256。
(8)在存储器中指令和数据没有任何区别,都是二进制信息。
检测点2.1
(1)写出每条汇编指令执行后相关寄存器中的值。
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
检测点2.1
⑵只能使用目前学过的汇编指令,最多使用4条指令,编程计算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
检测点2.2
(1)给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为001011到1000FH。
解题过程:
物理地址=5人*16+后代
EA的变化范围为Oh'ffffh
物理地址范围为(SA*16+0h)〜(SA*16+ffffh)
现在SA=0001h,那么寻址范围为
(000lh*l6+0h)〜(0001h*16+ffffh)
=0010h~1000fh
检测点2.2
(2)有一数据存放在内存2000011单元中,现给定段地址为SA,若想用偏移地址寻到此单元。则SA应满足
的条件是:最小为1001H,最大为2000H。
当段地址给定为1001H以卜.和2000H以上,CPU无论怎么变化偏移地址都无法寻到20000H单元。
解题过程:
物理地址=5人*16+£人
20000h=SA*16+EA
SA=(20000h-EA)/16=2000h-EA/16
EA取最大值时,SA=2000h-ffffh/16=100Ih,SA为最小值
EA取最小值时,SA=2000h-0h/16=2000h,SA为最大值
这里的ffffH/16=fffh是通过WIN白带计算器算的
按位移来算确实应该为fff.fh,这里小数点后的f应该是省略了
单就除法来说,应有商和余数,但此题要求的是地址最大和最小,所以余数忽略了
如果根据位移的算法(段地址*16=16进制左移一位),小数点后应该是不能省略的
我们可以反过来再思考下,如果SA为1000h的话,小数点后省略
SA=1000h,EA取最大ffffh,物理地址为Iffffh,将无法寻到20000H单元
这道题不应看成是单纯的计算题
检测点2.3
下面的3条指令执行后,cpu儿次修改IP?都是在什么时候?最后IP中的值是多少?
movax,bx
subax,ax
jmpax
答:一共修改四次
第■次:读取movax,bx之后
第二次:读取subax,ax之后
第三次:读取jmpax之后
第四次:执行jmpax修改IP
最后IP的值为0000H,因为最后ax中的值为0000H,所以IP中的值也为0000H
实验一查看CPU和内存,用机器指令和汇编指令编程
2实验任务
(D使用Debug,将下面的程序段写入内存,逐条执行,观察每条指令执行后,CPU中相关寄存器中内容的
变化。
机器码汇编指令寄存器
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
实验一查看CPU和内存,用机器指令和汇编指令编程
(2)将下面的3条指令写入从2000:0开始的内存单元中,利用这3条指令计算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
实验•查看CPU和内存,用机器指令和汇编指令编程
(3)查看内存中的内容
PC主:板上的ROM中有个•出产日期,在内存FFFOOH-FFFFFH的某儿个单元中,请找到这个出产日期并试图
改变它。
Microsoft(R)WindowsDOS
(C)CopyrightMicrosoftCorp1990-2001.
C:\D0CUME'l\ADMINri>debug
-dffff:Of
FFFF:0000EA5BE000F031322F-32352F303700FC59..12/25/07..Y
地址COOOO'FFFFF的内存单元为只读存储器,写入数据操作是无效的。
因此出产日期无法改变。
下面内容摘自于网上
还有另一种情况,如果你发现你能修改ROM中的生产日期,那么原因如下:
每个计算机的结构都不•样,教材考虑的是普通8086PC机上的效果,个别计算机的效果可能不同。
也就是说在你的计算机中这个内存是可修改的
所以,认为所有的计算机某些地址的内存不能修改是片面的。
廿上说rom是只读的你就不去验证了吗?如何验证呢?
我觉得这个实验最大的好处不是让我们验证了这个知识点,而是提醒我们要有怀疑的精神,怀疑之后再去
验证才能跟深刻的理解知识,提升自己的能力,甚至还会发现有些书上描述的不准确甚至错误的地方。
一引用这儿本书综合研究的三个问题:
都再用,我们就非得用吗?
规定了,我们就只知道遵守吗?
司空见惯,我们就不怀疑了吗?
尽信书不如无书大概也有这个道理吧;一
检测点3.1
(1)在DEBUG中,用〃D0:0If"查看内存,结果如下:
0000:00007080F030EF6030E2-0080801266202260
0000:00106226E61)6CC2E3C3B-ABBA000026066688
下面的程序执行前,AX=O,BX=O,写出每条汇编指令执行完后相关寄存器中的值
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进行验证:
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
检测点3.1
(2)内存中的情况如图3.6所示
各寄存器的初始值:cs=2000h,ip=O,ds=1000h,ax=0,bx=0;
①写出CPU执行的指令序列(用汇编指令写出)。
②写出CPU执行每条指令后,CS、IP和相关寄存器的数值。
③再次体会:数据和程序有区别吗?如何确定内存中的信息哪些是数据,哪些是程序?
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内存情况示意
图3.6内存情况示意
指令序列CSIPDSAXBX
初始值2000h00()0
1movax,6622h2000h3h06622h0
2jmp0ff0:0100ffOhlOOh06622h0
3movax,2000hffOh103h02000h0
4movds,axffOh105h2000h2000h0
5movax,[8]ffOh108h2000hc389h0
6movax,[2]ffOhlObh2000hea66h0
检测点3.2
(1)补全下面的程序,使其可以将10000H-1000FH中的8个字,逆序拷贝到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
检测点3.2
(2)补全下面的程序,使其可以将1OOOOH-1OOOFH中的8个字,逆序拷贝到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]
实验2用机器指令和汇编指令编程
(1)使用DEBUG,将上面的程序段写入内存,逐条执行,根据指令执行后的实际运行情况填空。
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,修改的内存单元地址是2200:00FE内容为5CCAH
pushbx;sp=OOFCH,修改的内存单元地址是2200:OOFC内容为6122H
popax;sp=OOFCH,ax=6122H
popbx;sp=OOFEH,bx=5CCAH
push[4];sp=OOFEH,修改的内存单元地址是2200:OOFE内容为31F0
push[6];sp=OOFCH,修改的内存单元地址是2200:00FC内容为2F32
此实验答案不定,需根据每台机器的实际运行情况。
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. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第4课 喜看稻菽千重浪学案(1)高一上学期语文部编版必修上册
- 陕县2024年一级造价工程师《土建计量》考前冲刺试题含解析
- 黔东南南苗族侗族自治州黄平县2024年一级造价工程师《土建计量》统考试题含解析
- 【大学课件】管理信息系统
- 土木工程概预算课件
- 《财务管理流程介绍》课件
- 《不燃放烟花爆竹》课件
- 哈密无尘车间施工方案
- 有关九年级英语教学工作计划
- 合肥绿色环保围挡施工方案
- 材料腐蚀与防护智慧树知到期末考试答案章节答案2024年武汉科技大学
- DL∕ T 736-2010 农村电网剩余电流动作保护器安装运行规程
- YD-T 4339-2023 5G移动通信网能力开放(NEF)总体技术要求
- 七年级历史上册 第三单元 单元测试卷(人教版 2024年秋)
- 偏微分方程智慧树知到期末考试答案章节答案2024年浙江师范大学
- 《高延性混凝土加固技术规程》DB64-T1746-2020
- 诗经导读省公开课金奖全国赛课一等奖微课获奖课件
- (正式版)SHT 3120-2024 石油化工喷射式混合器技术规范
- 智慧树中国传统绘画赏析(厦门理工学院)章节测验答案
- 【音乐】古琴与中国传统文化
- 【生态摄影】揭示摄影在记录生态与环境的价值与作用
评论
0/150
提交评论