汇编语言(王爽)-第二版-课后题全-答案_第1页
汇编语言(王爽)-第二版-课后题全-答案_第2页
汇编语言(王爽)-第二版-课后题全-答案_第3页
汇编语言(王爽)-第二版-课后题全-答案_第4页
汇编语言(王爽)-第二版-课后题全-答案_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

检测点1.1(1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为13位。(2)1KB的存储器有1024个存储单元,存储单元的编号从0到1023。(3)1KB的存储器可以存储8192(213)个bit,1024个Byte。(4)1GB是 (230)个Byte、1MB是(220)个Byte、1KB是1024(210)个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=2N,N=13。(2)存储器的容量是以字节为最小单位来计算的,1KB=1024B。(3)8Bit=1Byte,1024Byte=1KB(1KB=1024B=1024B*8Bit)。(4)1GB=B(即230)1MB=B(即220)1KB=1024B(即210)。(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) 写出每条汇编指令执行后相关寄存器中的值。mov ax,62627AX=F4A3Hmov ah,31HAX=31A3Hmov al,23HAX=3123Hadd ax,axAX=6246Hmov bx,826CHBX=826CHmov cx,axCX=6246Hmov ax,bxAX=826CHadd ax,bxAX=04D8Hmov al,bhAX=0482Hmov ah,blAX=6C82Hadd ah,ahAX=D882Hadd al,6AX=D888Hadd al,alAX=D810Hmov ax,cxAX=6246HMicrosoft(R) Windows DOS(C)Copyright Microsoft Corp 1990-2001.C:DOCUME1ADMINI1debug-a0C1C:0100 mov ax,f4a30C1C:0103 mov ah,310C1C:0105 mov al,230C1C:0107 add ax,ax0C1C:0109 mov bx,826c0C1C:010C mov cx,ax0C1C:010E mov ax,bx0C1C:0110 add ax,bx0C1C:0112 mov al,bh0C1C:0114 mov ah,bl0C1C:0116 add ah,ah0C1C:0118 add al,60C1C:011A add al,al0C1C:011C mov ax,cx0C1C:011E-rAX=0000BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0100NV UP EI PL NZ NA PO NC0C1C:0100 B8A3F4MOVAX,F4A3-tAX=F4A3BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0103NV UP EI PL NZ NA PO NC0C1C:0103 B431MOVAH,31-tAX=31A3BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0105NV UP EI PL NZ NA PO NC0C1C:0105 B023MOVAL,23-tAX=3123BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0107NV UP EI PL NZ NA PO NC0C1C:0107 01C0ADDAX,AX-tAX=6246BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0109NV UP EI PL NZ NA PO NC0C1C:0109 BB6C82MOVBX,826C-tAX=6246BX=826CCX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=010CNV UP EI PL NZ NA PO NC0C1C:010C 89C1MOVCX,AX-tAX=6246BX=826CCX=6246DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=010ENV UP EI PL NZ NA PO NC0C1C:010E 89D8MOVAX,BX-tAX=826CBX=826CCX=6246DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0110NV UP EI PL NZ NA PO NC0C1C:0110 01D8ADDAX,BX-tAX=04D8BX=826CCX=6246DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0112OV UP EI PL NZ AC PE CY0C1C:0112 88F8MOVAL,BH-tAX=0482BX=826CCX=6246DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0114OV UP EI PL NZ AC PE CY0C1C:0114 88DCMOVAH,BL-tAX=6C82BX=826CCX=6246DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0116OV UP EI PL NZ AC PE CY0C1C:0116 00E4ADDAH,AH-tAX=D882BX=826CCX=6246DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0118OV UP EI NG NZ AC PE NC0C1C:0118 0406ADDAL,06-tAX=D888BX=826CCX=6246DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=011ANV UP EI NG NZ NA PE NC0C1C:011A 00C0ADDAL,AL-tAX=D810BX=826CCX=6246DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=011COV UP EI PL NZ AC PO CY0C1C:011C 89C8MOVAX,CX-tAX=6246BX=826CCX=6246DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=011EOV UP EI PL NZ AC PO CY0C1C:011E 0B0CORCX,SIDS:0000=20CD-q检测点2.1(2) 只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。movax,2AX=2addax,axAX=4addax,axAX=8addax,axAX=16Microsoft(R) Windows DOS(C)Copyright Microsoft Corp 1990-2001.C:DOCUME1ADMINI1debug-a0C1C:0100 mov ax,20C1C:0103 add ax,ax0C1C:0105 add ax,ax0C1C:0107 add ax,ax0C1C:0109-rAX=0000BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0100NV UP EI PL NZ NA PO NC0C1C:0100 B80200MOVAX,0002-tAX=0002BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0103NV UP EI PL NZ NA PO NC0C1C:0103 01C0ADDAX,AX-tAX=0004BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0105NV UP EI PL NZ NA PO NC0C1C:0105 01C0ADDAX,AX-tAX=0008BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0107NV UP EI PL NZ NA PO NC0C1C:0107 01C0ADDAX,AX-tAX=0010BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0109NV UP EI PL NZ AC PO NC0C1C:0109 ANDBX+SI+1516,CLDS:1516=00-q检测点2.2(1) 给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为0010H到1000FH。解题过程:物理地址SA*16+EAEA的变化范围为0hffffh物理地址范围为(SA*16+0h)(SA*16+ffffh)现在SA=0001h,那么寻址范围为(0001h*16+0h)(0001h*16+ffffh)=0010h1000fh检测点2.2(2) 有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元。则SA应满足的条件是:最小为1001H,最大为2000H。当段地址给定为1001H 以下和 2000H 以上,CPU无论怎么变化偏移地址都无法寻到20000H单元。解题过程:物理地址SA*16+EA20000hSA*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应该是省略了单就除法来说,应有商和余数,但此题要求的是地址最大和最小,所以余数忽略了如果根据位移的算法(段地址*1616进制左移一位),小数点后应该是不能省略的我们可以反过来再思考下,如果SA为1000h的话,小数点后省略SA=1000h,EA取最大ffffh,物理地址为1ffffh,将无法寻到20000H单元这道题不应看成是单纯的计算题检测点2.3下面的3条指令执行后,cpu几次修改IP?都是在什么时候?最后IP中的值是多少?mov ax,bxsub ax,axjmp ax答:一共修改四次第一次:读取mov ax,bx之后第二次:读取sub ax,ax之后第三次:读取jmp ax之后第四次:执行jmp ax修改IP最后IP的值为0000H,因为最后ax中的值为0000H,所以IP中的值也为0000H实验一 查看CPU和内存,用机器指令和汇编指令编程2实验任务(1)使用Debug,将下面的程序段写入内存,逐条执行,观察每条指令执行后,CPU中相关寄存器中内容的变化。机器码汇编指令寄存器b8 20 4emov ax,4E20Hax=4E20H05 16 14add ax,1416Hax=6236Hbb 00 20mov BX,2000Hbx=2000H01 d8add ax,bxax=8236H89 c3mov bx,axbx=8236H01 d8add ax,bxax=046CHb8 1a 00mov ax,001AHax=001AHbb 26 00mov bx,0026Hbx=0026H00 d8add al,blax=0040H00 dcadd ah,blax=2640H00 c7add bh,albx=4026Hb4 00mov ah,0ax=0040H00 d8add al,blax=0066H04 9cadd al,9CHax=0002HMicrosoft(R) Windows DOS(C)Copyright Microsoft Corp 1990-2001.C:DOCUME1ADMINI1debug-a0C1C:0100 mov ax,4e200C1C:0103 add ax,14160C1C:0106 mov bx,20000C1C:0109 add ax,bx0C1C:010B mov bx,ax0C1C:010D add ax,bx0C1C:010F mov ax,001a0C1C:0112 mov bx,00260C1C:0115 add al,bl0C1C:0117 add ah,bl0C1C:0119 add bh,al0C1C:011B mov ah,00C1C:011D add al,bl0C1C:011F add al,9c0C1C:0121-rAX=0000BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0100NV UP EI PL NZ NA PO NC0C1C:0100 B8204EMOVAX,4E20-tAX=4E20BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0103NV UP EI PL NZ NA PO NC0C1C:0103 ADDAX,1416-tAX=6236BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0106NV UP EI PL NZ NA PE NC0C1C:0106 BB0020MOVBX,2000-tAX=6236BX=2000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0109NV UP EI PL NZ NA PE NC0C1C:0109 01D8ADDAX,BX-tAX=8236BX=2000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=010BOV UP EI NG NZ NA PE NC0C1C:010B 89C3MOVBX,AX-tAX=8236BX=8236CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=010DOV UP EI NG NZ NA PE NC0C1C:010D 01D8ADDAX,BX-tAX=046CBX=8236CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=010FOV UP EI PL NZ NA PE CY0C1C:010F B81A00MOVAX,001A-tAX=001ABX=8236CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0112OV UP EI PL NZ NA PE CY0C1C:0112 BB2600MOVBX,0026-tAX=001ABX=0026CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0115OV UP EI PL NZ NA PE CY0C1C:0115 00D8ADDAL,BL-tAX=0040BX=0026CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0117NV UP EI PL NZ AC PO NC0C1C:0117 00DCADDAH,BL-tAX=2640BX=0026CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0119NV UP EI PL NZ NA PO NC0C1C:0119 00C7ADDBH,AL-tAX=2640BX=4026CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=011BNV UP EI PL NZ NA PO NC0C1C:011B B400MOVAH,00-tAX=0040BX=4026CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=011DNV UP EI PL NZ NA PO NC0C1C:011D 00D8ADDAL,BL-tAX=0066BX=4026CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=011FNV UP EI PL NZ NA PE NC0C1C:011F 049CADDAL,9C-tAX=0002BX=4026CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0121NV UP EI PL NZ AC PO CY0C1C:0121 DRCRWORD PTR BX+DI+7500,CLDS:B526=0000-q实验一 查看CPU和内存,用机器指令和汇编指令编程(2)将下面的3条指令写入从2000:0开始的内存单元中,利用这3条指令计算2的8次方。mov ax,1add ax,axjmp 2000:0003Microsoft(R) Windows DOS(C)Copyright Microsoft Corp 1990-2001.C:DOCUME1ADMINI1debug-a 2000:02000:0000 mov ax,12000:0003 add ax,ax2000:0005 jmp 2000:00032000:0007-r csCS 0C1C:2000-r ipIP 0100:0000-rAX=0000BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=2000IP=0000NV UP EI PL NZ NA PO NC2000:0000 B80100MOVAX,0001-tAX=0001BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=2000IP=0003NV UP EI PL NZ NA PO NC2000:0003 01C0ADDAX,AX-tAX=0002BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=2000IP=0005NV UP EI PL NZ NA PO NC2000:0005 EBFCJMP0003-tAX=0002BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=2000IP=0003NV UP EI PL NZ NA PO NC2000:0003 01C0ADDAX,AX-tAX=0002BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=2000IP=0003NV UP EI PL NZ NA PO NC2000:0003 01C0ADDAX,AX-tAX=0004BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=2000IP=0005NV UP EI PL NZ NA PO NC2000:0005 EBFCJMP0003-tAX=0004BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=2000IP=0003NV UP EI PL NZ NA PO NC2000:0003 01C0ADDAX,AX-tAX=0008BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=2000IP=0005NV UP EI PL NZ NA PO NC2000:0005 EBFCJMP0003-tAX=0008BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0C1CES=0C1CSS=0C1CCS=2000IP=0003NV UP EI PL NZ NA PO NC2000:0003 01C0ADDAX,AX-q实验一 查看CPU和内存,用机器指令和汇编指令编程(3) 查看内存中的内容PC主板上的ROM中有个一出产日期,在内存FFF00H-FFFFFH的某几个单元中,请找到这个出产日期并试图改变它。Microsoft(R) Windows DOS(C)Copyright Microsoft Corp 1990-2001.C:DOCUME1ADMINI1debug-d ffff:0 fFFFF:0000EA 5B E0 00 F0 31 32 2F-32 35 2F 30 37 00 FC 59.12/25/07.Y-q地址C0000FFFFF的内存单元为只读存储器,写入数据操作是无效的。因此出产日期无法改变。下面内容摘自于网上还有另一种情况,如果你发现你能修改ROM中的生产日期,那么原因如下:每个计算机的结构都不一样,教材考虑的是普通8086PC机上的效果,个别计算机的效果可能不同。也就是说 在你的计算机中 这个内存是可修改的所以,认为所有的计算机某些地址的内存不能修改是片面的。书上说rom是只读的你就不去验证了吗?如何验证呢?我觉得这个实验最大的好处不是让我们验证了这个知识点,而是提醒我们要有怀疑的精神,怀疑之后再去验证才能跟深刻的理解知识,提升自己的能力,甚至还会发现有些书上描述的不准确甚至错误的地方。-引用这几本书综合研究的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论