实验任务:学会使用debug

1.使用Debug,将程序段写入内存:

首先对0021:0000~0021:000F的内存赋值

这里我赋的值是 11 12 13 14 15 16 17 18

输入mov ds,as时打错了。。。问题不大,重新输入一次

实验结果:

在内存0021:0000处创建了一个长度为FH的栈结构,对AX赋值后压栈

逐步运行后,观察数据结果并填空

2.观察如下例子,分析

分析为何一开始2000:0~2000:000F所有元素为0,而之后发生改变(如下图)

2000:0~2000:000F的元素发生变化

对于每一项指令进行操作d查看内存元素

我们可以发现,执行mov ss,ax后,并没有改变2000:0~2000:000F的元素,而进一步对ax赋值产生了改变

给ax赋值后压栈前,用d命令观察2000:00内存,都是00,创建栈结构指向这段内存时,有些数据改变了

仔细观察,不难发现,从2000:000F到2000:0000,
倒序现实各元素为 01 A3 07 3F 01 08 00 00 20 00 00 00 00 00 00 00,
显然存在着CS(07 3F),IP(01 08),AX(20 00)的值
因此,我猜测可能与寄存器栈操作时会将一些寄存器变量如地址压入栈中!
我在网上查阅了相关资料,发现是t命令实际是引发了单步中断,执行中断例程时,CPU会将一些中断例程使用的的寄存器变量自动压栈到栈中。
这是以后学习的内容emm
 

汇编实验2(又是作业emm)的更多相关文章

  1. 汇编实验1(又是作业emm)

    实验任务:学会使用debug 1.使用Debug,将程序段写入内存: 机器码: b8 20 4e 05 16 14 bb 00 20 01 d8 89 c3 01 d8 b8 1a 00 bb 26 ...

  2. 实验十一 团队作业7—团队项目设计完善&编码测试

    实验十一 团队作业7—团队项目设计完善&编码测试 实验时间 2018-6-8 Deadline: 2018-6-20 10:00,以团队随笔博文提交至班级博客的时间为准. 评分标准: 按时交 ...

  3. 汇编实验15:安装新的int 9中断例程

    汇编实验15:安装新的int 9中断例程 任务 安装一个新的int 9中断例程,功能:在DOS下,按下“A”键后,除非不在松开,一旦松开后,就显示满屏幕的“A”,其他键照常处理. 预备知识概要 这次实 ...

  4. 汇编实验14:访问CMOS RAM

    汇编实验14:访问CMOS RAM 任务 编程,以“年/月/日 时:分:秒”的格式,显示当前的日期,时间. 预备知识 CMOS存储当前时间的信息:年.月.日.时.分.秒.这六个信息的长度均为1个字节, ...

  5. 实验十三 团队作业9:Beta冲刺与团队项目验收

    实验十三 团队作业9:Beta冲刺与团队项目验收 实验时间 2019-6-20(21) Deadline: [6.20-6.26]之间任选连续3天的23:00,以团队随笔博文提交时间为准. 评分标准: ...

  6. 实验十一 团队作业7:团队项目设计完善&编码

    实验十一 团队作业7:团队项目设计完善&编码 实验时间 2019-6-6 Deadline: 2019-6-12 10:00,以团队随笔博文提交至班级博客的时间为准. 评分标准: 按时交 – ...

  7. 《CoderXiaoban团队》实验十 团队作业6:团队项目系统设计改进与详细设计

    实验十 团队作业6:团队项目系统设计改进与详细设计 项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 实验十 团队作业6:团队项目系统设计改进与详细设计 团队名称 Code ...

  8. ICS2019-Linux汇编实验指导

    ICS2019-Linux汇编实验指导 环境配好了? 开始调试 一. 首先安装NASM 1. 先判断系统是否已经安装了nasm 打开终端,执行  whereis nasm :如果显示nasm: /us ...

  9. 《ABCD组》实验十一 团队作业7:团队项目设计完善&编码

    <ABCD组>实验十一 团队作业7:团队项目设计完善&编码 项目 内容 这个作业属于哪个课程 http://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在 ...

随机推荐

  1. CentOS7.4+OpenStack-Queens版本部署

    一.准备工作.网络选择NAT 创建两台虚拟机:linux-node1.linux-node2 node1: 修改主机名 [root@localhost ~]# hostnamectl set-host ...

  2. node.js安装使用express框架

    官网:http://www.expressjs.com.cn/ 使用方式(如果后面需要添加路由等推荐第二种方式,不然需要需要手动添加):一.自己动手搭建 1. 新建项目文件夹,如test,并在命令行中 ...

  3. pycharm中字体大小的调整方法

    一.file->settings->editor->font->size 二.file中键入mouse,在其下editor->general->mouse选中:ch ...

  4. dos2章

    讲FOR之前呢,咋先告诉各位新手朋友,如果你有什么命令不懂,直接在CMD下面输入: name /? 这样的格式来看系统给出的帮助文件,比如for /? 就会把FOR命令的帮助全部显示出来!当然许多菜鸟 ...

  5. 虚机配置vip命令行配置

    测试脚本:import osimport re import urllib from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler ...

  6. Linux~Archer 进化之路

    使用过的linux系统有:Redhat.红旗Linux.Deepin.Ubuntu.Debian.Fedora.Kali.Parrot.manjaro.Mint.Arch,最早接触linux是从200 ...

  7. L2-007 家庭房产 (25 分)

    L2-007 家庭房产 (25 分)   给定每个人的家庭成员和其自己名下的房产,请你统计出每个家庭的人口数.人均房产面积及房产套数. 输入格式: 输入第一行给出一个正整数N(≤),随后N行,每行按下 ...

  8. HslCommunication组件库使用说明 (转载)

    一个由个人开发的组件库,携带了一些众多的功能,包含了数据网络通信,文件上传下载,日志组件,PLC访问类,还有一些其他的基础类库. nuget地址:https://www.nuget.org/packa ...

  9. linux开机默认启动命令行模式

    进入vi /etc/inittab 修改id:5:initdefault: 为id:3:initdefault:

  10. 埃式筛法——求n以内素数

    素数筛法的关键就在一个“筛”字.算法从小到大枚举所有数,对每一个素数,筛去它的所有倍数,剩下的就都是素数了. 例如:求1-15中的所有素数. 1.  2是素数(唯一需要事先确定的),因此筛去2的所有倍 ...