(暂停更新)

红色的答案

目录

检测点 1.1

检测点 2.1

检测点 2.2

检测点 2.3


检测点 1.1

(1) 13

如果一个 cpu 有 n 根地址线,则可以说这个 cpu 的地址总线的宽度为 n ,而一根导线可以传送的稳定状态只有两种:高电平和低电平( 1 和 0 ),所以 n 根导线只可以传送 n 位二进制数据。n 位二进制数据可以表示 2 的 n 次方个不同的数,所以有 n 根地址线的 cpu 最多可以寻找 2 的 n 次方个 内存单元。

题目中说这个 cpu 的寻址能力是 8 KB,也就是说它的寻址能力是 8 * 1024 Byte,等于 2 ^ 13 Byte,所以它的地址线有 13 根,也就是说它地址总线的宽度位 13 。

(2) 1024、0、1023 和 (3) 8*1024、1024

电子计算机的最小信息单位是 bit(比特) ,也就是一个二进制位。微型机存储器的存储单元可以存储一个 Byte ,也就是 8 个 bit 。

题目中说1 KB 的存储器,也就是 1024 Byte 的存储器,那自然就可以存储 1024 个 Byte,也就是 8 * 1024 个bit;一个存储单元可以存储一个 Byte ,那1024 Byte 的存储器自然有 1024 个存储单元。编号从 0 开始,和C语言是一样的,所以答案是 从 0 到 1023。

(4) 1024^3、1024^2、1024

进制转换,不会的自己查表

(5)2^6、1、2^4、4

通过题(1)我们可以知道,如果一个 cpu 有 n 根地址线,则可以说这个 cpu 的地址总线的宽度为 n ,而一根导线可以传送的稳定状态只有两种:高电平和低电平( 1 和 0 ),所以 n 根导线只可以传送 n 位二进制数据。n 位二进制数据可以表示 2 的 n 次方个不同的数,所以有 n 根地址线的 cpu 最多可以寻找 2 的 n 次方个 内存单元。

题目中说 地址总线宽度是 16 根,那么它的寻址能力就应该是 2^16 Byte ,同理可得剩下其他的,做一下进制转换就 OK 了。

(6) 1、1、2、2、4

8 根数据总线一次可以传送 一个 8 位二进制数据,一根线传送一位数嘛~~~,也就是说 8 根数据总线一次可以传送 1 个字节(Byte),16根那就是 2 个字节.

题目告诉了数据总线的宽度有几根(8/16),知道如上的基础知识,答案简简单单就出来了。

(7) 512、256

通过第七题可以知道 8086 一次传输的数据是 2 Byte ,80386 是 4 Byte,所以用 1024 分别除以 2 和 4 就可以得到答案。

(8) 二进制

记住就好哦~

检测点 2.1

(1)

 首先需要注意的就是al和ah这种都是作为一个独立的8位寄存器来使用的,cpu再执行指令的时候认为al和ah,两者之间没有关系。

其次需要注意像倒数第二个 add al,al 的情况,此时88H+88H的结果是110H,但是al作为8位寄存器,只能存放两位十六进制的数据,所以最高位的 1 会丢失,只留下 10H。

十六进制计算可以使用这个在线工具:十六进制计算器 | 十六进制数字系统 (purecalculators.com)

mov ax,62627                AX=F4A3H
mov ah,31H                   AX=31A3H
mov al,23H                    AX=3123H
add ax,ax                       AX=6246H
mov bx,826CH               BX=826CH
mov cx,ax                      CX=6246H
mov ax,bx                      AX=826CH
add ax,bx                       AX=04D8H
mov al,bh                       AX=0482H
mov ah,bl                       AX=6C82H
add ah,ah                       AX=D882H
add al,6                          AX=D888H
add al,al                         AX=D810H
mov ax,cx                      AX=6246H

(2)答案如下↓(装作是红色的吧)

mov ax,2H
add ax,ax
add ax,ax
add ax,ax

第一行:ax等于2

第二行:ax等于2+2=4

第三行:ax等于4+4=8

第四行:ax等于8+8=16

检测点 2.2

(1)0010H到1000fH

物理地址 = 段地址 * 16 + 偏移地址

偏移地址16位,变化范围为0~FFFFH(出处 王爽汇编第四版 p25的结论)

物理地址的范围是

最小是偏移地址为0,最大是偏移地址为FFFFH

所以答案为0010H到1000fH

(2)

因为:物理地址 = 段地址 * 16 + 偏移地址

逐步推导:段地址 * 16 = 物理地址 - 偏移地址

段地址 = (物理地址 - 偏移地址)/ 16

代入数据:段地址 = (20000H - 偏移地址)/ 16

因为偏移地址的范围是:0~FFFFH

所以想要 SA(段地址)最大,就要让偏移地址最小,

即:当偏移地址为0时,SA = 20000H / 16 = 2000H

同理可知:当偏移地址为FFFFH时,SA = 20000H / 16 - FFFFH / 16 = 2000H - FFFH = 1001H

检测点 2.3

4次;  第一句语句读取后、第二句语句读取后、第三句语句读取后、第三句语句执行后;0000H

SUB (subtract) 指令:

SUB dst,src 结果是 (dst) = (dst)-(src) 

有关 jmp 的内容移步王爽汇编第四版 p32

由于 8086cpu CS,IP不支持用 MOV 指令来改变他们的值,因此引入 JMP 指令。
jmp ax 在语法上(注意是在语法上)相当于 mov IP,ax

注意 IP 的值每读取一条指令会自动增加

mov ax,bx    : 将 bx 的值赋给 ax;
sub ax,ax     :    将 ax(前)的值减去 ax(后)的值 , 并保存在 ax 中
jmp ax          :    将ax的值赋给ip(指令指针)寄存器

所以上述每一条语句读取后都会修改一次 IP ,而在执行 jmp ax 语句的时候 IP 也会变化,(毕竟这就是这个语句的作用和存在的意义),三次读取后加上一次执行,IP 总共被修改了 4 次。

因为 jmp ax 所以 IP最后的值 就是 ax 的值

又因为 sub ax,ax 使 ax 变成了0000H,

所以最后ip的值为0000H

王爽汇编语言第四版答案解析相关推荐

  1. 王爽汇编语言第三版答案

    转载自 https://blog.csdn.net/modiz/article/details/88776695 部分加上自己的分析,感谢 Modiz 汇编语言答案(王爽) 检测点1.1 (1)1个C ...

  2. 王爽 汇编语言第三版 第10章 call 和 ret 指令 以及 子程序设计

    第10章 call 和 ret 指令 10.1 ret 和 reft 指令 call 和 ret 指令都是转移指令,他们都修改 IP,或同事修改 CS 和 IP .他们经常被共同来实现子程序的设计. ...

  3. 王爽 汇编语言第三版 第7章 --- 更灵活的定位内存地址的方法(可以理解为 数组形式的内存定位)

    汇编语言(第三版)王爽著 的十二个实验:https://blog.csdn.net/OrangeHap/article/details/89791064 大小端 字节对齐 对于 arm,intel 这 ...

  4. 王爽 汇编语言第三版 课程设计 1

    From:https://www.cnblogs.com/Since-natural-ran/p/6938133.html 汇编语言-课程设计1: https://www.cnblogs.com/ts ...

  5. 汇编语言(王爽)第四版检测点2.2答案

    (1)给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为0010H到1000fH. 物理地址 = 段地址 * 16 + 偏移地址 注:偏移地址16位,变化范围为0~FFFFH 物理地址 ...

  6. 汇编语言 王爽(第四版)复习笔记

    第一章 基础知识 机器语言是机器指令的 集合. 汇编语言的主体是汇编指令,决定了汇编语言的特性. 汇编语言 汇编指令:机器码的助记符,有对应的机器码. 伪指令:由编译器执行,无对应机器码. 其他符号: ...

  7. 王爽 汇编语言第三版 第9章 转移指令的原理

    第九章  转移指令的原理 汇编代码: assume cs:codesgcodesg segments: mov ax,bx ; mov ax,bx 的机器码占两个字节mov si, offset sm ...

  8. 王爽 汇编语言第三版 第8章( 寻址方式 ) --- 数据处理的两个问题

    第八章    数据处理的两个基本问题 8.6 综合应用 示例代码 1: assume cs:codesg,ds:datasgdatasg segmentdb 1024 dup (0) datasg e ...

  9. 王爽 汇编语言第三版 问题 7.9 将 datasg 段中前4个字母变成大写(汇编中的双重循环)

    问题 7.9: 将 datasg 段中前 4 个字母变成大写 汇编代码: assume cs:codesg,ss:stacksg,ds:datasgstacksg segmentdb 0,0,0,0, ...

最新文章

  1. 【tf.keras】TensorFlow 1.x 到 2.0 的 API 变化
  2. python 作用域 前缀_Python面试题:杂项内容
  3. 多案分库分表带来的问题-跨库关联查询
  4. 使用HTML5开发离线应用 - cache manifest
  5. matlab emf 读取,20140219-Emf_Demo EMF 矢量图 可以读取和保存EMF 的封闭类 非常实用 matlab 238万源代码下载- www.pudn.com...
  6. linux中sort命令实例,Linux命令之排序命令sort使用实例
  7. Django学习笔记之二
  8. mysql 查询索引
  9. php 去掉 回车 换行,php去掉换行符的方法
  10. 小程序----API
  11. XeCJK 使用系统字体
  12. Git 使用 — Git下载与安装
  13. 模糊聚类及matlab实现,matlab模糊聚类程序
  14. 软件架构之前后端分离与前端模块化发展史
  15. 韩文打字速度测试软件,韩语软件推荐:好用的韩语拼写分写检查器
  16. python2048游戏代码_python 实现 2048 游戏 (二)
  17. PRCS-1011 PRCS-1014
  18. 【自然语言处理】【可解释性】Perturbed Masking:分析和解释BERT的无参数探针
  19. Coder之路,平凡才是唯一的答案
  20. 城市道路十字路口的通行规则是“红灯停,绿灯行”,请用信号量和PV操作描述交通信号灯和汽车通过十字路口的同步行为

热门文章

  1. 生成带图片无白边的二维码
  2. iOS 中给view设置圆角头像(类似qq空间头像)
  3. Nature Neuroscience:人类大脑进化与认知中的协同
  4. shell编程与运维
  5. 【Linux】vi编辑器如何使用
  6. 执行./node_modules/,bin/sequelize migration:create --name UserInit报错无法加载
  7. 华为云ModelArts的简单使用
  8. 家教O2O电商平台爆发的原因何在?
  9. ​九州一轨通过注册:计划募资6.57亿 京投公司为大股东
  10. addEventListener事件监听方式