《汇编语言》第二版习题答案(全) 王爽编写_第1页
《汇编语言》第二版习题答案(全) 王爽编写_第2页
《汇编语言》第二版习题答案(全) 王爽编写_第3页
《汇编语言》第二版习题答案(全) 王爽编写_第4页
《汇编语言》第二版习题答案(全) 王爽编写_第5页
已阅读5页,还剩140页未读 继续免费阅读

下载本文档

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

文档简介

检测点 ( 1) 1 个 寻址能力为 8么它的地址总线的宽度为 13 位。 ( 2) 1存储器有 1024 个存储单元,存储单元的编号从 0 到 1023 。 ( 3) 1存储器可以存储 8192( 213) 个 1024个 ( 4) 1 1073741824 ( 230) 个 1 1048576( 220) 个 1 1024( 210) 个 ( 5) 8080、 8088、 80296、 80386 的地址总线宽度分别为 16 根、 20 根、 24 根 、 32 根,则它们的寻址能力分别为 : 64 ( 1 ( 16 ( 4 ( ( 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) 1024B, 8024B*8=2N, N=13。 ( 2)存储器的容量是以字节为最小单位来计算的, 1024B。 ( 3) 810241024B=1024B*8 ( 4) 1073741824B(即 230) 1048576B(即 220) 1024B(即 210)。 ( 5)一个 N 根地址线,则可以说这个 地址总线的宽度为 N。这样的 多可以寻找 2 的 一个内存单元 =1 ( 6) 8 根数据总线一次可以传 送 8 位二进制数据(即一个字节)。 ( 7) 8086 的数据总线宽度为 16 根(即一次传送的数据为 2B) 1024B/2B=512,同理 1024B/4B=256。 ( 8)在存储器中指令和数据没有任何区别,都是二进制信息。 检测点 (1) 写出每条汇编指令执行后相关寄存器中的值。 2627 4 1H 1 3H 123H ax, 246H 26 26 cx, 246H ax, 26 ax, 4 al, 482H ah, ah, 882H 888H al, 810H ax, 246H ) C)990C:a 0100 ax,103 1 0105 3 0107 ax,109 26c 010C cx,10E ax,110 ax,112 al,114 ah,116 ah,118 011A al,11C ax,11E X=0000 000 000 000 000 000 000 100 P L A C 0100 4t 4000 000 000 000 000 000 103 P L A C 0103 1 X=31000 000 000 000 000 000 105 P L A C 0105 3 X=3123 000 000 000 000 000 000 107 P L A C 0107 01 X X=6246 000 000 000 000 000 000 109 P L A C 0109 26C X=6246 26C 000 000 000 000 000 10C P L A C 010C 89 X X=6246 26C 246 000 000 000 000 10E P L A C 010E 89 X X=826C 26C 246 000 000 000 000 110 P L A C 0110 01 X X=0426C 246 000 000 000 000 112 P L C Y 0112 88 H X=0482 26C 246 000 000 000 000 114 P L C Y 0114 88 L X=626C 246 000 000 000 000 116 P L C Y 0116 00 H X=26C 246 000 000 000 000 118 P G C C 0118 0406 6 X=26C 246 000 000 000 000 11A P G A C 011A 00 L X=26C 246 000 000 000 000 11C P L C Y 011C 89 X X=6246 26C 246 000 000 000 000 11E P L C Y 011E 0 000=20q 检测点 2) 只能使用目前学过的汇编指令,最多使用 4 条指令,编程计算 2 的 4 次方。 ax, ax, ax, 6 ) C)990C:a 0100 0103 ax,105 ax,107 ax,109 X=0000 000 000 000 000 000 000 100 P L A C 0100 002 X=0002 000 000 000 000 000 000 103 P L A C 0103 01 X X=0004 000 000 000 000 000 000 105 P L A C 0105 01 X X=0008 000 000 000 000 000 000 107 P L A C 0107 01 X X=0010 000 000 000 000 000 000 109 P L C C 0109 20881615 I+1516, 516=00 测点 1) 给定段地址为 0001H,仅通过变化偏移地址寻址, 0010H 到 1000 解题过程: 物理地址 6+ 变化范围为 0h 物理地址范围为 (6+0h)(6+ 现在 001h,那么寻址范围为 (0001h*16+0h)(0001h*16+ =0010h1000 检测点 (2) 有一数据存放在内存 20000H 单元中,现给定段地址为 想用偏移地址寻到此单元。则 满足的条件是:最小为 1001H ,最大为 2000H 。 当段地址给定为 1001H 以下和 2000H 以上, 论怎么变化偏移地址都无法寻到 20000H 单元。 解题过程: 物理地址 6+ 20000h 6+ 2000016=20006 最大值时 ,0006=1001h,最小值 最小值时 ,0006=2000h,最大值 这里的 6=通过 带计算器算的 按位移来算确实应该为 里小数点后的 f 应该是省略了 单就除法来说,应有商和余数,但此题要求的是地址最大和最小,所以余数忽略了 如果根据位移的算法( 段地址 *16 16 进制左移一位 ),小数点后应该是不能省略的 我们可以反过来再思考下,如果 000h 的话,小数点后省略 000h,最大 理地址为 1无法寻到 20000H 单元 这道题不应看成是单 纯的计算题 检测点 面的 3 条指令执行后, 次修改 是在什么时候?最后 的值是多少? ax, ax, 答:一共修改四次 第一次:读取 ax,后 第二次:读取 ax,后 第三次:读取 后 第四次:执行 改 最后 值为 0000H,因为最后 的值为 0000H,所以 的值也为 0000H 实验一 查看 内存,用机器指令和汇编指令编程 2 实验任务 (1)使用 下面的程序段写入内存,逐条执行,观察每条指令执行后, 相关寄存器中内容的变化。 机器码 汇编指令 寄存器 0 4e 05 16 14 416H 236H 0 20 X,2000H 000H 01 ax, 236H 89 bx, 236H 01 ax, 46a 00 01 016 00 026H 026H 00 al, 040H 00 ah, 640H 00 bh, 026H 0 040H 00 al, 066H 04 9c 002H ) C)990C:a 0100 103 416 0106 000 0109 ax,10B bx,10D ax,10F 01a 0112 026 0115 al,117 ah,119 bh,11B 011D al,11F c 0121 X=0000 000 000 000 000 000 000 100 P L A C 0100 t 000 000 000 000 000 000 103 P L A C 0103 051614 416 X=6236 000 000 000 000 000 000 106 P L A C 0106 000 X=6236 000 000 000 000 000 000 109 P L A C 0109 01 X X=8236 000 000 000 000 000 000 10B P G A C 010B 89 X X=8236 236 000 000 000 000 000 10D P G A C 010D 01 X X=046C 236 000 000 000 000 000 10F P L A Y 010F 01A X=001A 236 000 000 000 000 000 112 P L A Y 0112 026 X=001A 026 000 000 000 000 000 115 P L A Y 0115 00 L X=0040 026 000 000 000 000 000 117 P L C C 0117 00 L X=2640 026 000 000 000 000 000 119 P L A C 0119 00 L X=2640 026 000 000 000 000 000 11B P L A C 011B 0 X=0040 026 000 000 000 000 000 11D P L A C 011D 00 L X=0066 026 000 000 000 000 000 11F P L A C 011F 049C C X=0002 026 000 000 000 000 000 121 P L C Y 0121 I+7500, 526=0000 验一 查看 内存,用机器指令和汇编指令编程 (2)将下面的 3 条指令写入从 2000: 0 开始的内存单元中,利用这 3 条指令计算 2 的 8 次方。 ax,ax 000:0003 ) C)990C:a 2000:0 2000:0000 2000:0003 ax,000:0005 000:0003 2000:0007 -r S 02000 -r P 0100 :0000 X=0000 000 000 000 000 000 000 000 000 P L A C 2000:0000 001 X=0001 000 000 000 000 000 000 000 003 P L A C 2000:0003 01 X X=0002 000 000 000 000 000 000 000 005 P L A C 2000:0005 0003 X=0002 000 000 000 000 000 000 000 003 P L A C 2000:0003 01 X X=0002 000 000 000 000 000 000 000 003 P L A C 2000:0003 01 X X=0004 000 000 000 000 000 000 000 005 P L A C 2000:0005 0003 X=0004 000 000 000 000 000 000 000 003 P L A C 2000:0003 01 X X=0008 000 000 000 000 000 000 000 005 P L A C 2000:0005 0003 X=0008 000 000 000 000 000 000 000 003 P L A C 2000:0003 01 X 验一 查看 内存,用机器指令和汇编指令编程 (3) 查看内存中的内容 板上的 有个一出产日期,在内存 找到这个 出产日期并试图改变它。 ) C)990C:d f 000 B 0 1 32 25 2F 30 37 00 9 .5/07.q 地址 内存单元为只读存储器,写入数据操作是无效的。 因此出产日期无法改变。 下面内容摘自于 网上 还有另一种情况,如果你发现你 能修改 的生产日期,那么原因如下: 每个计算机的结构都不一样,教材考虑的是普通 8086上的效果,个别计算机的效果可能不同。 也就是说 在你的计算机中 这个内存是可修改的 所以,认为所有的计算机某些地址的内存不能修改是片面的。 书上说 只读的你就不去验证了吗?如何验证呢? 我觉得这个实验最大的好处不是让我们验证了这个知识点,而是提醒我们要有怀疑的精神,怀疑之后再去验证才能跟深刻的理解知识,提升自己的能力,甚至还会发现有些书上描述的不准确甚至错误的地方。 都再用,我们就非得用吗? 规定了,我们就只知道遵守吗? 司空见惯,我们就不怀疑了吗? 尽信书不如无书大概也有这个道理吧 _ 检测点 1) 在 ,用 D 0:0 查看内存 ,结果如下 : 0000:0000 70 80 0 0 30 0 80 12 66 20 22 60 0000:0010 62 26 6 E 3C 3A 00 00 26 06 66 88 下面的程序执行前 ,写出每条汇编指令执行完后相关寄存器中的值 ds,0000 2662H 0001 ax, 0000 2662H 0002 ax, 0004 2 0 0002 00 0 000c 0026H al, 000 用 行验证: ) C)990C:000e 0000:0 0000:0000 000:0008 000:0010 000:0018 d 0000:0 1f 0000:0000 70 80 0 0 30 0 80 12 66 20 22 60 p.0. 0000:0010 62 26 6 E 3C 3A 00 00 26 06 66 88 b&.a 0100 ax,103 ds,105 200 0108 ss,10A 100 010D 0 0110 2 0114 4 0118 6 011C 11D 11E 11F 120 4 0124 6 0128 X=0000 000 000 000 000 000 000 100 P L A C 0100 t 000 000 000 000 000 000 103 P L A C 0103 8 X X=000 000 000 000 000 000 105 P L A C 0105 200 X=2200 000 000 000 000 000 000 108 P L A C 0108 8 X X=2200 000 000 000 100 000 000 000 200 10D P L A C 010D 0000 000=5d f 000 B 0 1 32 25 2F 30 37 00 9 .5/07.t 000 000 000 100 000 000 000 200 110 P L A C 0110 03060200 0002 002=00t 000 000 000 100 000 000 000 200 114 P L A C 0114 8 0004 004=31t 1000 000 100 000 000 000 200 118 P L A C 0118 031 0006 006=2t 122 000 000 100 000 000 000 200 11C P L A C 011C 50 t 122 000 000 0000 000 000 200 11D P L A C 011D 53 t 122 000 000 0000 000 000 200 11E P L A C 011E 58 t 122 122 000 000 0000 000 000 200 11F P L A C 011F 5B t 122 000 000 100 000 000 000 200 120 P L A C 0120 0004 004=31t 122 000 000 0000 000 000 200 124 P L A C 0124 0006 006=2t 122 000 000 0000 000 000 200 128 P L A C 0128 16 q 实验 2 用机器 指令和汇编指令编程 ( 2)仔细观察图 的实验过程,然后分析:为什么 2000: 0200

温馨提示

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

评论

0/150

提交评论