【8086汇编-Day5】第三次实验
练习一
结果展示:
这个程序执行下来貌似打印了数字36,但其实是两个数字3、6;
这段就是用来打印3;首先ah里放2,跟后面的int 21h结合起来就是调用21号中断例程的2号子程序,用来打印到标准输出。mov dl,3可以理解,我们是想打印数字3,可是事实上并没有那么简单,我们打印字符其实需要的是字符3的ACSII码值即51d 即33h所以在3的基础上add 30h。那么打印6同理。如何让输出与输出有换行呢?
mov ah,
mov dl,0ah
int 21h
既然我已经分析的如此清晰了,那我就不改动line 4,line 9了,实际上道理就是这样的,数字本身跟他的十六进制ASCII值形式上刚好差30h,所以add一行不用换,想打印什么数字直接改mov dl的就好了。
过程:
查看cx(在这里cx用来表示机器码占用的字节数)可以自己数下反汇编出来的机器码长度
单步调试,最后调用中断例程退出程序
练习二
过程:
改变line7 line 10数据,观察现象
其实讲到这里就够了,这个汇编程序其实就是在想现存写入数据,哪还记得上一次实验中向显存写入数据实现多种多样的显示么?这里的字符样式、颜色、前景、背景涉及到那些比特位,我在上一篇实验博客里做过补充,在此不再赘述,有兴趣可以参考我上一篇博文,在这里做不同实现。
!!!
dosbox下这一点确实有点坑,操作数搭配结构不合法的时候,不影响程序执行,在老师指导下在m4w环境下做了实验,意识到错误,如下
修改后则正常了,如下
【8086汇编-Day5】第三次实验的更多相关文章
- 【8086汇编-Day5】第二次实验
debug的使用 偷个懒,之前写过了这里不再赘述 实验 1)实验1 要求:用e将一些数据写入内存,用a写入一段程序,t 逐条执行 观察具体参数变化,并探究现象 1.e写入,d检查 2.a写入程序 3. ...
- 8086汇编语言学习(二) 8086汇编开发环境搭建和Debug模式介绍
1. 8086汇编开发环境搭建 在上篇博客中简单的介绍了8086汇编语言.工欲善其事,必先利其器,在8086汇编语言正式开始学习之前,先介绍一下如何搭建8086汇编的开发环境. 汇编语言设计之初是用于 ...
- 20135302魏静静——linux课程第三周实验及总结
linux课程第三周实验及总结 一.实验:跟踪分析Linux内核的启动过程 使用gdb跟踪调试内核从start_kernel到init进程启动 使用实验楼的虚拟机打开shell cd LinuxKer ...
- 8086汇编——Introduction(8086内部寄存器,段寄存器,存储器分段)
8086汇编--Introduction 一.8086CPU的三种工作模式 实模式:只有低20位地址线起作用,仅能寻址第一个1MB的内存空间.MS DOS运行于该模式下. 保护模式:在该模式下,机器可 ...
- 20145224&20145238 《信息安全系统设计基础》 第三次实验
20145224&20145238 <信息安全系统设计基础>第三次实验 课程:信息安全系统设计基础 班级:1452 姓名:陈颢文 荆玉茗 学号:20145224 20145238 ...
- 20145330Java程序设计第三次实验
20145330<Java程序设计>第三次实验报告 实验三 敏捷开发与XP实践 实验内容 1.使用git上传代码 2.使用git实现代码开发实践 3.实现代码的重载 实验步骤 使用git上 ...
- 20145320《Java程序设计》第三次实验报告
20145320<Java程序设计>第三次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.22 15: ...
- Linux第三次实验报告
北京电子科技学院(BESTI) 实 验 报 告 课程:信息安全系统设计基础 班级:201352 姓名:池彬宁 贺邦 学号:20135212 2013520 ...
- 南京邮电大学java第三次实验报告
实 验 报 告 ( 2017 / 2018学年 第2学期) 课程名称 JAVA语言程序设计 实验名称 Java集成开发环境的安装与使用. Java变量.表达式与控制结构 实验时间 2018 年 4 月 ...
随机推荐
- OC基础数据类型-NSString
1.字符串的初始化 //字符串的初始化 NSString *str = @"Hello world!"; NSString *str2 = [[NSString alloc] in ...
- multiGet(下载软件)
下载软件 apt-get install multiGet
- Mysql数据库,表中有中文时,select出来好多问号(?)的解决方法
在QQ群里问了一些高手,同时参考了这篇文章:http://huangyunbin.iteye.com/blog/1113983,终于把这个问题搞定了. 首先,我用的是zip包的Mysql,直接解压使用 ...
- 刷题防止Time Limit Exceeded(TLE)技巧
1.C++ 不要使用cin,cout,该使用scanf和printf 2.Java 不要使用Scanner,改用BufferedReader 3.Python 在文件开始的地方加入 import ps ...
- 字符串匹配KMP算法(转自阮一峰)
转自 http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html 字符串匹配是计算 ...
- if not
if not x 在python中的意思是如果x为空 a = [] if not a: print 1 此代码会打印出1 a = [1,2,3] if not a: print 1 此代码不会打印出1 ...
- 在Mac终端中使用vim编辑文件步骤
VIM (Unix及类Unix系统文本编辑器) Vim是一个类似于Vi的著名的功能强大.高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性.VIM是纯粹的自由软件. http://jingya ...
- M4修改外部晶振8M和25M晶振的方法
共计修改三个参数: 1.HSE_VALUE 具体位置在stm32f4xx.h中 2.PLL_M 具体位置在system_stm32f4xx.c中 3.Keil编译器 工程的Opt ...
- Oracle子查询之高级子查询
Oracle 高级子查询 高级子查询相对于简单子查询来说,返回的数据行不再是一列,而是多列数据. 1,多列子查询 主查询与子查询返回的多个列进行比较 查询与141号或174号员工的manager_id ...
- 【解决】could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network
在同一套环境中跑了很多个项目都是用 docker-compose的方式启动的,导致创建的自定义网络过多出现下面的报错 Error response from daemon: could not fin ...