检测点3.1
1)在Debug中,用d “0:01f”查看内存,结果如下。
0000:0000 70 80 F0 30 EF 60 30 E2-00 80 80 12 66 20 22 60
0000:0010 60 26 E6 D6 CC 2E 3C 3B-AB BA 00 00 26 06 66 88
下面的程序执行前,AX=0,BX=0,写出每条汇编指令执行完后相关寄存器中的值。
mov ax,1
mov ds,ax
mov ax,[0000] AX = 2662H
mov bx,[0001] BX = E626H
mov ax,bx AX = E626H
mov ax,[0000] AX = 2662H
mov bx,[0002] BX = D6E6H
add ax,bx AX = FD48H
add ax,[0004] AX = 2C14H
mov ax,0 AX = 0
mov al,[0002] AX = 00E6H
mov bx,0 BX = 0
mov bl,[000C] BX = 0006H
add al,bl AX = 000CH
2)内存中的情况如图3.6所示。

各寄存器的初始值:CS=2000H,IP=0,DS=1000H,AX=0,BX=0;

1.写出CPU执行的指令序列(用汇编指令写出)。

2.写出CPU执行每条指令后,CS,IP和相关寄存器中的数值。

3.再次体会:数据和程序有区别吗?如何确定内存中的信息哪些是数据,那些是程序?

指令 CS IP DS AX
mov ax,6622H 2000H 0 1000H 6622H
jmp 0ff0:0100 0ff0H 0100H 1000H 6622H
mov ax,2000H 0ff0H 0103H 1000H 2000H
mov ds,ax 0ff0H 0105H 2000H 2000H
mov ax,[0008] 0ff0H 0108H 2000H C389H
mov ax,[0002] 0ff0H 010BH 2000H EA66H

程序和数据在内存中看不出来区别,但是 如果是CS:IP所执行到的内存那就是程序,由其它寄存器比如DS指向的则是数据。

注:DS寄存器存放要访问数据的段地址。

检测点3.2

1)补全下面的程序,使其可以将10000H~1000FH中的8个字,逆序复制到20000H~2000FH中。逆序复制的含义如图3.17所示(图中内存里的数据均为假设)。

注:8个字也就是16个内存单元

段寄存器SS 存放栈顶的段地址

寄存器SP 存放偏移地址

mov ax,1000H

mov ds,ax

(mov ax,2000H)

(mov ss,ax)                       (ss需要ax寄存器给值)

(mov sp,0010H)                 (sp不需要ax寄存器给值)  等待解决

push [0]

push [2]

push [4]

push [6]

push [8]

push [A]

push [C]

push [E]

2)补全下面的程序,使其可以将10000H~1000FH中的8个字,逆序复制到20000H~2000FH中。

mov ax,2000H

mov ds,ax

(mov ax,1000H)

(mov cs,ax)

(mov sp,0)                  因为要pop,sp要加,所以sp初始值应该是0

pop [E]

pop [C]

pop [A]

pop [8]

pop [6]

pop [4]

pop [2]

pop [0]

PS

1)把0000:0开始处的16字节按字逆序复制到1000:0,至少按两种方法。

第一种方法:

第二种方法,我想应该是自己手动写入

转载于:https://www.cnblogs.com/KogetsuChida/p/10404058.html

汇编语言第三章检测题相关推荐

  1. 第三章第九题(商业:检验ISBN-10)((Business: check ISBN-10))

    第三章第九题(商业:检验ISBN-10)((Business: check ISBN-10)) **3.9(商业:检验ISBN-10)ISBN-10(国际标准书号)由10个个位整数d1d2d3d4d5 ...

  2. 《机器学习》周志华课后习题答案——第三章 (1-7题)

    <机器学习>周志华课后习题答案--第三章 (1-7题) 文章目录 <机器学习>周志华课后习题答案--第三章 (1-7题) 一.试析在什么情形下式(3.2)中不必考虑偏置项b. ...

  3. 计算机网络 第三章 课后题答案

    英文版教材第三章 1.2.3.4.6.7.9.11.14.15.16, 补充题1 一个上层分组(数据包)被分为 10 帧,每帧有 80%可能无损到达.如果在数据链路层没有差错控制,该报文要平均传送多少 ...

  4. 数据库系统概论 第三章 第五大题 实验报告

    实验目标: 根据课本p71提供的表格,实现p130第五大题的问题,理解和掌握关系数据库标准SQL语言,能够熟练使用SQL语言完成各种数据库操作和管理任务.包括使用SQL DDL语句创建.更改和删除数据 ...

  5. 王爽 汇编语言 第三章 实验二

    (1)先用a命令写入程序 然后一直输T,就可以看到 mov ax,[0] ;ax=C0EAH add ax,[2] ;ax=C0FCH mov bx,[4] ;bx=30F0H add bx,[6] ...

  6. 编译原理陈火旺版第三章课后题答案

    下面答案仅供参考! 1.编写一个对于 Pascal 源程序的预处理程序.该程序的作用是,每次被调用时都将 下一个完整的语句送进扫描缓冲区,去掉注解行,同时要对源程序列表打印. 答:以下是一个简单的预处 ...

  7. 李航老师《统计学习方法》第二版第三章课后题答案

    其他章节答案请参考我的汇总统计学习方法答案汇总,都是自己写的. 1.参照图3.1,在二维空间中给出实例点,画出 kkk 为1和2时的 kkk 近邻法构成的空间划分,并对其进行比较,体会 kkk 值的选 ...

  8. 基于案例的软件构造教程第三章课后题答案

    2.用C.Java等编程语言,(1)定义ADT Stack.ADT Queue.ADT List:(2)编程实现上面定义的ADT:(3)设计测试用例,并用JUnit测试. class Stack {p ...

  9. 汇编语言:第三章 寄存器(内存访问)

    3.1内存中字的存储 CPU中寄存器是16位的,可以用高低字节存储一个字,但是每个内存单元是8位的,只能存储一个字节, 所以内存中用相邻2个内存单元存储一个字的高低字节 如:20000数值(4E20H ...

最新文章

  1. 用户身份验证配置需考虑的因素
  2. 字符设备驱动程序之异步通知
  3. python socketserver实现服务器端执行命令 上传文件 断点续传
  4. 解决cocoapods在64位iOS7系统以下的警告问题
  5. 【转】删除已经存在的 TFS Workspace
  6. 黄聪:Discuz X2.0 SEO:论坛面包屑导航伪静态 去掉面包屑导航forum.php(转)
  7. oracle安装后再建库,oracle-数据库的安装与建库
  8. VSCode搭建vue前端开发工程的配置文件-launch.json
  9. UBUNTU上安装numpy
  10. eclipse tomcat 热部署
  11. mysql关系代数表达式,【数据库复习】关系代数
  12. win7专业版设置通电自启动
  13. 【C语言】输出杨辉三角形 - 杨辉直角三角形(杨辉三角最佳算法) 输出杨辉三角前十行
  14. 开关稳压器详解(四)-Buck降压型开关稳压器自举电路
  15. 4.5 Frank 口语习语前7
  16. ghost还原固态硬盘_不要Ghost和重装 两招把Win7克隆到SSD
  17. Mac pro M2芯片如何进入恢复模式
  18. Windows UI 测试
  19. 考研公式大全-提问版-数学二
  20. 网易七鱼“大闹”客服行业,真能一举定乾坤?

热门文章

  1. c语言中递增递减运算符,递增++和递减-C ++中的运算符
  2. java 8进制 前是 零,从零学java笔录-第6篇 进制之间转换
  3. c++ 输出string_来讲讲Java中String 类的知识点
  4. php fpm子进程数配置,php-fpm进程管理方式以及子进程数量配置原则详解
  5. 超级计算机手机芯片,美国开建arm超级计算机,单节点性能是手机芯片100倍
  6. oracle用游标drop多个表,Oracle Procedure中使用游标cursor更新多表?
  7. matlab电机建模,Matlab系列之无刷电机matlab建模.ppt
  8. python os.system
  9. CUDA TOOlkit Programming Guide 1.Introduction
  10. 图解TCPIP-传输层 TCP