• debug的使用

偷个懒,之前写过了这里不再赘述

  • 实验

1)实验1

要求:用e将一些数据写入内存,用a写入一段程序,t 逐条执行 观察具体参数变化,并探究现象

1.e写入,d检查

2.a写入程序

3.t 逐条执行

这几步执行完,寄存器 ax=3130,这就体现了小端法:取低地址单元地址为字数据地址,以及数据存取原则:高高,低低。接着add完ax正常变成了6462。bx同理

4.

做完之后,ax寄存器和bx的值就交换了,这就是栈的先进后出。

然后展示下push完内存里具体怎么存的

5.

这里其实重点是明白,压栈,弹出操作对象是字数据(两个字节)

2)

过程如下

这里前三步是初始化栈的操作,ss保存的栈顶段地址,sp保存的栈顶偏移地址是10H,初始化后栈底地址就是栈顶地址-2,即2000:f

这里有个重点,观察一下,一段内存被当作栈段来使用时,这段内存发生了什么变化?

为了便于观察(其实也没多少帮助)我把2000:0000到000f内存全部赋1。

可以看到,当栈初始化完后,有10个字节发生了变化,(由于用d查看的时候漏了一个字节,不过结合后面的显示结果可以猜出来遗漏掉的那个字节)

变化具体如下图

这个貌似涉及到中断的知识,我就简单讲下了,从栈底往上看,前两个字节放入标志寄存器的值(据说),接着两个字节压入了,cs寄存器的值,再接着是ip的值,紧接着两个字节的零(我没搞清是什么含义),最后2000:7 2000:8两个字节就是ax的值。

为什么这是10字节是这么用呢,这大概就是中断过程

  • 总结

为了理解现象中10个字节的变化的原因,特意去看了中断过程的知识,虽然自己懂了点,但是表达不出来很难受。

还有疑问:为什么标志寄存器的值是01A3,还是说这两个字节根本就不是标志寄存器的值?

还有然后存ip寄存器跟存ax的中间那两个字节的0是什么含义,希望有大佬解答下。。。

【8086汇编-Day5】第二次实验的更多相关文章

  1. 【8086汇编-Day5】第三次实验

    练习一 结果展示: 这个程序执行下来貌似打印了数字36,但其实是两个数字3.6: 这段就是用来打印3:首先ah里放2,跟后面的int 21h结合起来就是调用21号中断例程的2号子程序,用来打印到标准输 ...

  2. 【8086汇编-Day2】dosbox实验环境配置及测试

    我学习汇编用的是王爽的<汇编语言>第三版,书中是以8086处理器为例,是工作在实模式下的,而当下的个人电脑处理器都是工作在保护模式下的.所以需要一个虚拟的工作在实模式下的处理器,这里主要用 ...

  3. 8086汇编语言学习(二) 8086汇编开发环境搭建和Debug模式介绍

    1. 8086汇编开发环境搭建 在上篇博客中简单的介绍了8086汇编语言.工欲善其事,必先利其器,在8086汇编语言正式开始学习之前,先介绍一下如何搭建8086汇编的开发环境. 汇编语言设计之初是用于 ...

  4. 20145330《Java程序设计》第二次实验报告

    20145330<Java程序设计>第二次实验报告 实验二 Java面向对象程序设计 实验内容 1.初步掌握单元测试和TDD 2.理解并掌握面向对象三要素:封装.继承多态 3.初步掌握UM ...

  5. 20145320《Java程序设计》第二次实验报告

    20145320<Java程序设计>第二次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.12 15: ...

  6. 20145224&20145238 《信息安全系统设计基础》第二次实验

    20145224&20145238 <信息安全系统设计基础>第二次实验 课程:信息安全系统设计基础 班级:1452 姓名:陈颢文 荆玉茗 学号:20145224 20145238 ...

  7. 《Java程序设计》第二次实验报告

    20145220 <Java程序设计>第二次实验报告 课程:Java程序设计 指导教师:娄嘉鹏 实验日期:2016.04.12 实验名称:Java面向对象程序设计 实验内容 初步掌握单元测 ...

  8. 20155205 信息安全技术第二次实验 Windows口令破解

    20155205 信息安全技术第二次实验 Windows口令破解 实验原理 一.口令破解方法 口令破解主要有两种方法:字典破解和暴力破解. 字典破解是指通过破解者对管理员的了解,猜测其可能使用某些信息 ...

  9. java的第二个实验——JAVA面向对象程序设计

    java的第二个实验——JAVA面向对象程序设计 北京电子科技学院 实     验    报     告 课程:Java程序设计 班级:1352 姓名:林涵锦 学号:20135213 成绩:      ...

随机推荐

  1. Hyperledger Fabric 1.0 学习搭建 (一)--- 基础环境搭建

    1: 环境构建在本文中用到的宿主机环境是Centos ,版本为Centos.x86_64 7.2, 一定要用7版本以上, 要不然会安装出错. 通过Docker 容器来运行Fabric的节点,版本为v1 ...

  2. Spring 的下载、安装和使用

    一.下载 Spring 下载地址:http://repo.spring.io/libs-release-local/org/springframework/spring/4.0.6.RELEASE/  ...

  3. Intellij IDEA设置注释作者名字

    方法一:File >> Settings >> Editor >>Code Style >> File and Code Templates>&g ...

  4. ADF中VO的删除操作初探

    在ADF的VO中,真实提交更改是在commit 方法执行之后,如以下增加操作 EntityDefImpl departmentEODef = DepartmentEOImpl. getDefiniti ...

  5. 「hihocoder1413 Rikka with String」

    题目 哈哈哈哈哈哈哈哈哈哈我还没自闭 好像前后调了两天了 哈哈哈哈哈哈哈哈哈哈我还没自闭 这道题就是给定一个小写字母串,回答分别把每个位置上的字符替换为\(#\)后的本质不同的子串数 首先就是跨过这个 ...

  6. nrf52840蓝牙BLE5.0空中数据解析

    一.基础知识: 我没找到蓝牙5.0的ATT数据格式图片,在蓝牙4.0的基础上做修改吧,如下图所示:   二.测试与分析: 参数设置: data length = 251字节,MTU = 247字节, ...

  7. Codeforces Round #538 (Div. 2) D. Flood Fill 【区间dp || LPS (最长回文序列)】

    任意门:http://codeforces.com/contest/1114/problem/D D. Flood Fill time limit per test 2 seconds memory ...

  8. Linux学习总结(十四) 文件的打包和压缩

    文件的压缩和打包,在windos下我们很熟悉.rar和.zip文件,这是两种压缩文件,他们支持单个文件和多个文件的压缩.windos下我们不提及打包的概念,虽然多个文件的压缩肯定存在打包过程.打包和压 ...

  9. C#和C++的Socket通信

    最近在用C#做一个项目的时候,Socket发送消息的时候遇到了服务端需要接收C++结构体的二进制数据流,这个时候就需要用C#仿照C++的结构体做出一个结构来,然后将其转换成二进制流进行发送,之后将响应 ...

  10. 使用jmeter进行简单的压测

    安装下载 前往官网下载,[地址] 环境 需要java环境,此处略 最好对jmeter配置下环境变量,方便打开,此处略 运行 启动jmeter 进入到bin目录,输入   ./jmeter    启动 ...