假设内存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执行即可

汇编 --- 初体验相关推荐

  1. Linux环境下ARM开发工具TrueSTUDIO初体验

    Linux环境下ARM开发工具TrueSTUDIO初体验 TrueSTUDIO是Atollic公司出品的ARM开发工具,号称"The best FREE C/C++ IDE for ARM® ...

  2. 【正点原子STM32连载】第四章 STM32初体验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1

    1)实验平台:正点原子MiniPro H750开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=677017430560 3)全套实验源码+手册+视频 ...

  3. 苹果电脑安装python3密码_mac系统安装Python3初体验

    前沿 对于iOS开发不要随便拆卸系统自带的Python,因为有很多 library 还是使用 Python2.7. 1 安装Xcode 1.1 App Store 搜索Xcode 并安装 1.2 安装 ...

  4. MapReduce编程初体验

    需求:在给定的文本文件中统计输出每一个单词出现的总次数 第一步: 准备一个aaa.txt文本文档 第二步: 在文本文档中随便写入一些测试数据,这里我写入的是 hello,world,hadoop he ...

  5. 小程序 缩放_缩放流星应用程序的初体验

    小程序 缩放 by Elie Steinbock 埃莉·斯坦博克(Elie Steinbock) 缩放流星应用程序的初体验 (First Experiences Scaling a Meteor Ap ...

  6. wxWidgets刚開始学习的人导引(3)——wxWidgets应用程序初体验

    wxWidgets刚開始学习的人导引全文件夹   PDF版及附件下载 1 前言 2 下载.安装wxWidgets 3 wxWidgets应用程序初体验 4 wxWidgets学习资料及利用方法指导 5 ...

  7. 用鸿蒙跑了个 “hello world”!鸿蒙开发初体验

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 来源 | https://my.oschina.net/u ...

  8. Windows Embedded Standard开发初体验(二)

    支持Silverlight的Windows Embedded Standard 好了,完成安装之后,我们就可以来做Windows Embedded Standard的第一个操作系统镜像了.在开始菜单中 ...

  9. 深度探索Hyperledger技术与应用之超级账本初体验(附部署代码)

    2019独角兽企业重金招聘Python工程师标准>>> 本章零基础地介绍了如何快速体验超级账本搭建的区块链网络,我们先绕过了比较复杂的初始化配置,用官方提供的fabric-sampl ...

最新文章

  1. pvrect r语言 聚类_R语言一条命令实现基于样本和距离的聚类分析
  2. jQuery的jquery-1.10.2.min.map触发404(未找到)
  3. Mongodb常用增删改查语法
  4. C/C++ 语言的常用开发工具下载
  5. UNIX环境高级编程》笔记--getrlimit和setrlimit函数
  6. 跟小段一起学Solaris(20)---ipFilter防火墙
  7. 大一新生开发的小工具火了,网友:我好菜
  8. SLAM: Inverse Depth Parametrization for Monocular SALM
  9. 前端笔记-js文件首行添加;号(前端小技巧)
  10. about x86 protected mode
  11. yaml文件解析:golang篇
  12. html底部弹出选择,jQuery手机端底部弹出菜单列表特效代码
  13. python是个坑_python 坑1
  14. 两种简单高效的“反人脸识别”方法
  15. Internet连接共享只能上qq不能打开网页的问题解决
  16. 学完大数据基础,可以按照我写的顺序学下去
  17. 问题 D: 猫和兔子
  18. JavaScript-筑基(二十五)navigator对象(判断页面打开终端)、history对象
  19. HDU4689 Prince and Princess (Tarjan+匈牙利匹配)
  20. 经合组织:ICO有融资优势 但还不是主流工具

热门文章

  1. python画二次函数图像的顶点_画二次函数图像的步骤
  2. output怎么用_如何用 C++ 写一个可编程软件渲染器?
  3. python全文检索引擎_Python中使用haystack实现django全文检索搜索引擎功能
  4. android绘制环形进度_Android实现环形进度条代码
  5. picturectrl控件中加载图片并显示_如何在EasyX窗体中显示图片
  6. java 基础安装和Tomcat8配置
  7. PX4的workqueue
  8. MySQL触发器 trigger学习
  9. 容器的综合应用:文本查询程序
  10. node.js Lordofpomelo点击登录(login)终端提示成功,页面不跳转无反应