您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 软件工程 > 汇编语言(王爽) 第二版 课后题全 答案
检测点1.1(1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为13位。(2)1KB的存储器有1024个存储单元,存储单元的编号从0到1023。(3)1KB的存储器可以存储8192(2^13)个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的数据总线宽度分别为8根、8根、16根、16根、32根。则它们一次可以传送的数据为:1(B)、1(B)、2(B)、2(B)、4(B)。(7)从内存中读取1024字节的数据,8086至少要读512次,80386至少要读256次。(8)在存储器中,数据和程序以二进制形式存放。解题过程:(1)1KB=1024B,8KB=1024B*8=2^N,N=13。(2)存储器的容量是以字节为最小单位来计算的,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次方个内存单元。(一个内存单元=1Byte)。(6)8根数据总线一次可以传送8位二进制数据(即一个字节)。(7)8086的数据总线宽度为16根(即一次传送的数据为2B)1024B/2B=512,同理1024B/4B=256。(8)在存储器中指令和数据没有任何区别,都是二进制信息。检测点2.1(1)写出每条汇编指令执行后相关寄存器中的值。movax,62627AX=F4A3Hmovah,31HAX=31A3Hmoval,23HAX=3123Haddax,axAX=6246Hmovbx,826CHBX=826CHmovcx,axCX=6246Hmovax,bxAX=826CHaddax,bxAX=04D8Hmoval,bhAX=0482Hmovah,blAX=6C82Haddah,ahAX=D882Haddal,6AX=D888Haddal,alAX=D810Hmovax,cxAX=6246HMicrosoft(R)WindowsDOS(C)CopyrightMicrosoftCorp1990-2001.C:\DOCUME~1\ADMINI~1debug-a0C1C:0100movax,f4a30C1C:0103movah,310C1C:0105moval,230C1C:0107addax,ax0C1C:0109movbx,826c0C1C:010Cmovcx,ax0C1C:010Emovax,bx0C1C:0110addax,bx0C1C:0112moval,bh0C1C:0114movah,bl0C1C:0116addah,ah0C1C:0118addal,60C1C:011Aaddal,al0C1C:011Cmovax,cx0C1C:011E-rAX=0000BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0100NVUPEIPLNZNAPONC0C1C:0100B8A3F4MOVAX,F4A3-tAX=F4A3BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0103NVUPEIPLNZNAPONC0C1C:0103B431MOVAH,31-tAX=31A3BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0105NVUPEIPLNZNAPONC0C1C:0105B023MOVAL,23-tAX=3123BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0107NVUPEIPLNZNAPONC0C1C:010701C0ADDAX,AX-tAX=6246BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0109NVUPEIPLNZNAPONC0C1C:0109BB6C82MOVBX,826C-tAX=6246BX=826CCX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=010CNVUPEIPLNZNAPONC0C1C:010C89C1MOVCX,AX-tAX=6246BX=826CCX=6246DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=010ENVUPEIPLNZNAPONC0C1C:010E89D8MOVAX,BX-tAX=826CBX=826CCX=6246DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0110NVUPEIPLNZNAPONC0C1C:011001D8ADDAX,BX-tAX=04D8BX=826CCX=6246DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0112OVUPEIPLNZACPECY0C1C:011288F8MOVAL,BH-tAX=0482BX=826CCX=6246DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0114OVUPEIPLNZACPECY0C1C:011488DCMOVAH,BL-tAX=6C82BX=826CCX=6246DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0116OVUPEIPLNZACPECY0C1C:011600E4ADDAH,AH-tAX=D882BX=826CCX=6246DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0118OVUPEINGNZACPENC0C1C:01180406ADDAL,06-tAX=D888BX=826CCX=6246DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=011ANVUPEINGNZNAPENC0C1C:011A00C0ADDAL,AL-tAX=D810BX=826CCX=6246DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=011COVUPEIPLNZACPOCY0C1C:011C89C8MOVAX,CX-tAX=6246BX=826CCX=6246DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=011EOVUPEIPLNZACPOCY0C1C:011E0B0CORCX,[SI]DS:0000=20CD-q检测点2.1(2)只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。movax,2AX=2addax,axAX=4addax,axAX=8addax,axAX=16Microsoft(R)WindowsDOS(C)CopyrightMicrosoftCorp1990-2001.C:\DOCUME~1\ADMINI~1debug-a0C1C:0100movax,20C1C:0103addax,ax0C1C:0105addax,ax0C1C:0107addax,ax0C1C:0109-rAX=0000BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0100NVUPEIPLNZNAPONC0C1C:0100B80200MOVAX,0002-tAX=0002BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0103NVUPEIPLNZNAPONC0C1C:010301C0ADDAX,AX-tAX=0004BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0105NVUPEIPLNZNAPONC0C1C:010501C0ADDAX,AX-tAX=0008BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0107NVUPEIPLNZNAPONC0C1C:010701C0ADDAX,AX-tAX=0010BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0109NVUPEIPLNZACPONC0C1C:010920881615AND[BX+SI+1516],CLDS:1516=00-q检测点2.2(1)给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为0010H到1000FH。解题过程:物理地址=SA*16+EAEA的变化范围为0h~ffffh物理地址范围为(SA*16+0h)~(SA*16+ffffh)现在SA=0001h,那么寻址范围为(0001h*16+0h)~(0001h*16+ffffh)=0010h~1000fh检测点2.2(2)有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元。则SA应满足的条件是:最小为1001H,最大为2000H。当段地址给定为1001H以下和2000H以上,CPU无论怎么变化偏移地址都无法寻到20000H单元。解题过程:物理地址=SA*16+EA20000h=SA*16+EASA=(20000h-EA)/16=2000h-EA/16EA取最大值时,SA=2000h-ffffh/16=1001h,SA为最小值EA取最小值时,SA=2000h-0h/16=2000h,SA为最大值这里的ffffH/16=fffh是通过WIN自带计算器算的按位移来算确实应该为fff.fh,这里小数点后的f应该是省略了单就除法来说,应有商和余数,但此题要求的是地址最大和最小,所以余数忽略了如果根据位移的算法(段地址*16=16进制左移一位),小数点后应该是不能省略的我们可以反过来再思考下,如果SA为1000h的话,小数点后省略SA=1000h,EA取最大ffffh,物理地址为1ffffh,将无法寻到20000H单元这道题不应看成是单纯的计算题检测点2.3下面的3条指令执行后,c
本文标题:汇编语言(王爽) 第二版 课后题全 答案
链接地址:https://www.777doc.com/doc-5102134 .html