汇编 --- 初体验
假设内存10000H中的值为23,10001H中的值为11,10002H中的值为22,10003H的值为11
在debug中执行以下代码
mov ax,1000H
mov ds,ax
mov ax,[0]
mov bx,[2]
mov cx,[1]
add bx,[1]
add cx,[2]
- 分析:8086CPU中由于段地址寄存器,无法直接赋值,因此需要先将值赋给通用寄存器然后再给ds赋值代码如下
mov ax,1000H
mov ds,ax
mov ax,23
mov [0],ax
mov ax,11
mov [1],ax
mov ax,22
mov [2],ax
mov ax,11
mov [3],ax
mov ax,[0]
mov bx,[2]
mov cx,[1]
add bx,[1]
add cx,[2]
第一行回不去了… 代码地址是 0482:0139
-r 查看当前的cs:ip
当前执行的汇编代码是 mov ax,1000
cs = 0482, ip = 0100
我们需要改变ip 来执行上面的代码
-r ip
0139
此时开始执行我们写的代码段
-t 按段执行代码
下面提供正确的解法
- 上面是第一次用写的…
- 下面的是正解 - -
- -d查看内存中的数据
-d 1000:0
可以看到,此时内存1000:0000 到 1000:0003的值都为0
- 下面使用-e 写入数据
-e 1000:0 23 11 22 66
- 再次使用-d查看
-d 1000:0
- 内存中的值已经写入完毕,下面执行汇编代码
- -a是以汇编指令的形式,再内存中写入一段代码
-a
mov ax,1000
mov ds,ax
mov ax,[0]
mov bx,[2]
mov cx,[1]
add bx,[1]
add cx,[2]
- -r查看下一条cpu执行的指令
- -r ip改变指令偏移
-r
-r ip
0100
可以看到,此时cpu正好执行我们的程序段,因此不需要更改cs和ip直接-t 即可执行
- 后面一直-t执行即可
汇编 --- 初体验相关推荐
- Linux环境下ARM开发工具TrueSTUDIO初体验
Linux环境下ARM开发工具TrueSTUDIO初体验 TrueSTUDIO是Atollic公司出品的ARM开发工具,号称"The best FREE C/C++ IDE for ARM® ...
- 【正点原子STM32连载】第四章 STM32初体验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
1)实验平台:正点原子MiniPro H750开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=677017430560 3)全套实验源码+手册+视频 ...
- 苹果电脑安装python3密码_mac系统安装Python3初体验
前沿 对于iOS开发不要随便拆卸系统自带的Python,因为有很多 library 还是使用 Python2.7. 1 安装Xcode 1.1 App Store 搜索Xcode 并安装 1.2 安装 ...
- MapReduce编程初体验
需求:在给定的文本文件中统计输出每一个单词出现的总次数 第一步: 准备一个aaa.txt文本文档 第二步: 在文本文档中随便写入一些测试数据,这里我写入的是 hello,world,hadoop he ...
- 小程序 缩放_缩放流星应用程序的初体验
小程序 缩放 by Elie Steinbock 埃莉·斯坦博克(Elie Steinbock) 缩放流星应用程序的初体验 (First Experiences Scaling a Meteor Ap ...
- wxWidgets刚開始学习的人导引(3)——wxWidgets应用程序初体验
wxWidgets刚開始学习的人导引全文件夹 PDF版及附件下载 1 前言 2 下载.安装wxWidgets 3 wxWidgets应用程序初体验 4 wxWidgets学习资料及利用方法指导 5 ...
- 用鸿蒙跑了个 “hello world”!鸿蒙开发初体验
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 来源 | https://my.oschina.net/u ...
- Windows Embedded Standard开发初体验(二)
支持Silverlight的Windows Embedded Standard 好了,完成安装之后,我们就可以来做Windows Embedded Standard的第一个操作系统镜像了.在开始菜单中 ...
- 深度探索Hyperledger技术与应用之超级账本初体验(附部署代码)
2019独角兽企业重金招聘Python工程师标准>>> 本章零基础地介绍了如何快速体验超级账本搭建的区块链网络,我们先绕过了比较复杂的初始化配置,用官方提供的fabric-sampl ...
最新文章
- pvrect r语言 聚类_R语言一条命令实现基于样本和距离的聚类分析
- jQuery的jquery-1.10.2.min.map触发404(未找到)
- Mongodb常用增删改查语法
- C/C++ 语言的常用开发工具下载
- UNIX环境高级编程》笔记--getrlimit和setrlimit函数
- 跟小段一起学Solaris(20)---ipFilter防火墙
- 大一新生开发的小工具火了,网友:我好菜
- SLAM: Inverse Depth Parametrization for Monocular SALM
- 前端笔记-js文件首行添加;号(前端小技巧)
- about x86 protected mode
- yaml文件解析:golang篇
- html底部弹出选择,jQuery手机端底部弹出菜单列表特效代码
- python是个坑_python 坑1
- 两种简单高效的“反人脸识别”方法
- Internet连接共享只能上qq不能打开网页的问题解决
- 学完大数据基础,可以按照我写的顺序学下去
- 问题 D: 猫和兔子
- JavaScript-筑基(二十五)navigator对象(判断页面打开终端)、history对象
- HDU4689 Prince and Princess (Tarjan+匈牙利匹配)
- 经合组织:ICO有融资优势 但还不是主流工具
热门文章
- python画二次函数图像的顶点_画二次函数图像的步骤
- output怎么用_如何用 C++ 写一个可编程软件渲染器?
- python全文检索引擎_Python中使用haystack实现django全文检索搜索引擎功能
- android绘制环形进度_Android实现环形进度条代码
- picturectrl控件中加载图片并显示_如何在EasyX窗体中显示图片
- java 基础安装和Tomcat8配置
- PX4的workqueue
- MySQL触发器 trigger学习
- 容器的综合应用:文本查询程序
- node.js Lordofpomelo点击登录(login)终端提示成功,页面不跳转无反应