第6章 动手操作-DEBUG的使用2(X86汇编教程)

发布者:脑洞飞扬最新更新时间:2015-05-15 来源: 51hei关键字:动手操作  DEBUG  X86  汇编教程 手机看文章 扫描二维码
随时随地手机看文章
      本章将真正开始教你一些汇编指令,也许你早就期待着了.好,首先说汇编指令的格式(看不懂的话不要纠结在这里,继续看,后边会进行讲解!):
[代码标号][:]<指令名>[空格][操作数1][,][操作数2]
        打了尖括号的是每行汇编代码都必须有的,打方括号的是看情况决定有没有的,详解:

 
标号(这个暂时不用理解,先大概看看,以后讲到了再理解.):
        之前说过,汇编代码是在内存中的,所以,每行代码都会在内存中占用一定字节,当然,也就有了个地址.有的时候我们可能会需要用到某行代码的地址,代码将会被放到内存的什么地方,一般在代码编译出来就会计算好.所以在代码中可以直接输入那行代码在内存中的地址.但是呢.假如修改了代码,那内存地址不就变了吗? 所以人们想了这么个办法:用一句文本代替数字地址,等编译器编译的时候计算出那行文本所代表的代码的地址再自动填写进引用到那句文本的地方.
 
":":
        这个是跟在标号后边的,把标号和指令名区分开来(就算特殊情况标号后边没有任何东西也必须加":").
指令名:
        汇编代码的指令,CPU根据指令知道要做什么事.
 
空格:
        把指令和操作数区分开来.
 
",":
        把2个操作数区分开来
 
操作数:
        执行指令所需要的数据,比如我们在数学中要进行除法运算,需要被除数和除数这2个"操作数",在汇编里,汇编指令也需要相应的操作数才能进行计算,需要多少个操作数由指令决定,有些指令不需要操作数,有些需要1个,有些需要2个)
 

 
第一个指令
        相信你已经从前边的内容中学会了汇编的语法格式.现在将教你1个指令,并教你在Debug中输入它进行测试.指令资料:

 

指令名                           :MOV 
操作数数量                    :2
操作数用途                    :目标操作数,源操作数
指令用途                        :把一个数据从源操作数复制到目标操作数

        我希望你能写一个笔记,把将来教的各种指令记录下来.这对学习有好处,指令手册什么的,只有手册作者的理解,无法写入你自己的理解.人家写的你不一定看的懂.

        好了,接下来,在Debug里面试一下这个指令吧.打开DeBug,用A指令进入[汇编代码编辑模式](不要急着输入代码,先看讲解!!!)

 

 
汇编代码编辑模式讲解
 
        根据上图,你会看到右边显示一个内存地址,你输入的代码将被转换成机器码放到这个地址.旁边有一个光标,这就是你输入汇编代码的地方了.在这里输入代码,按下回车,就会直接将该行代码转换成机器码,并计算出长度.如果输入的代码有错误,DeBug会在错误处下面显示:"Error"

        DeBug并不是汇编编译器,所以对汇编代码是有限支持,标号是不给用的,只支持十六进制,至于二进制和十进制,反正我是没在这里用到过.[page]
 

好了,来试试MOV指令吧,用MOV往寄存器AX里写入数据1234H.

        把1234H写入AX,那么1234H就是"源操作数"了,AX就是"目标操作数"了,代码这么写(注意指令名和第一个操作数之间的空格,不要漏了!):

MOV AX,1234

输入指令后回车,你会看到DeBug还在代码编辑模式.在么退出代码编辑模式呢?直接空代码回车即可:


 

代码编辑成功,如何执行刚才输入的代码呢?不急,先看看寄存器内容吧,R指令:


 


 

首先看,AX寄存器.内容是0000,接着看内容的最下方.之前看不懂的一行.现在已经基本能看懂了.这里显示的是即将执行的代码(地址为:CS段寄存器:IP偏移寄存器)格式如下:

内存地址(段:偏移) 机器码(数字代码) 反汇编(汇编代码转机器码了,机器码转回汇编代码叫反汇编)

        由上可见MOV AX,1234的机器码是B8 34 12(这个34 12就是第2个操作数了,至于为啥会反过来,这是高位低位排序原因,请自行翻阅之前的章节)好了,来执行代码看看吧(终于执行代码了TAT),在 DeBug中,用T指令可以执行一行代码.执行看看:

T   回车

好了执行完毕.看看AX寄存器的内容:


 

         成功了,我们用汇编指令把一个数字写入到了AX寄存器里.

这一章就讲到这里,给个小作业,试试看把1234H写入BX寄存器,然后把BX寄存器的内容复制到AX寄存器,成功后把代码回复上来~


关键字:动手操作  DEBUG  X86  汇编教程 引用地址:第6章 动手操作-DEBUG的使用2(X86汇编教程)

上一篇:第8章 加法减法指令(X86汇编教程)
下一篇:第4章 内存数据(X86汇编教程)

推荐阅读最新更新时间:2024-03-16 14:02

超强悍的UDOO X86开发板在贸泽开售
专注于新产品引入 (NPI) 并提供极丰富产品类型的业界顶级半导体和电子元件分销商贸泽电子(Mouser Electronics) 即日起备货UDOO超强悍的X86开发板。下面就随嵌入式小编一起来了解一下相关内容吧。 超强悍的UDOO X86开发板在贸泽开售 这些开源X86结合了PC的功能以及Arduino 101 的原型开发能力,其执行速度是树莓派3的10倍。工程师可以使用X86开发板运行多种软件,包括游戏、视频流、图形编辑器和专业的开发平台。 贸泽电子供应的UDOO X86有四种版本 — BASIC、ADVANCED、ADVANCED PLUS和ULTRA版,并且所有这些版本均搭载64位四核英特尔® 处理器。UDOO
[嵌入式]
兆芯国产x86处理器亮相SWEDCS 2017
2017年7月7日,第二届上科大器件电路与系统高端研讨会(SWEDCS 2017)在上海科技大学报告厅胜利开幕,本届研讨会为期两天,邀请了来自美国工程院和英国皇家工程学院的院士及十几位美国电气与电子工程学会会士参会演讲,主题涵盖半导体器件、光学器件、电力电子及智能硬件等多个领域。 作为上海市本地技术领先的半导体设计研发公司,SWEDCS 2017期间,兆芯向来自国内外的嘉宾和行业技术大牛,以及上海科技大学师生展示了公司在x86 CPU设计研发及应用领域的一系列探索和成果,受到了与会嘉宾和广大师生的密切关注。 上海科技大学校长江绵恒博士对兆芯国产自主可控x86处理器予以了高度关注和肯定 兆芯国产处理器兼容x86指令 整机体验
[嵌入式]
兆芯国产<font color='red'>x86</font>处理器亮相SWEDCS 2017
ARM将在更多的应用场合替代x86
  X86是由Intel推出的一种复杂指令集,用于控制芯片的运行的程序,现在X86已经广泛运用到了家用PC(机箱+xx主板+xx电源+xx处理器+(光驱选装)的领域。下面就随嵌入式小编一起来了解一下相关内容吧。    x86概述   X86是由Intel推出的一种复杂指令集,用于控制芯片的运行的程序,现在X86已经广泛运用到了家用PC(机箱+xx主板+xx电源+xx处理器+(光驱选装)的领域。   x86架构于1978年推出的Intel 8086中央处理器中首度出现,它是从Intel 8008处理器中发展而来的,而8008则是发展自Intel 4004的。8086在三年后为IBM PC所选用,之后x86便成为了个人计算机的标准
[嵌入式]
Nvidia掌门黄仁勋否认将进军x86 CPU市场
  据国外媒体报道,美国知名图形芯片厂商Nvidia首席执行官黄仁勋上周四在接受媒体采访时表示,外界有关Nvidia将进军x86 CPU(中央处理器)市场的说法并不属实,该公司并不会推出兼容英特尔芯片的同类产品。   美国投资公司Broadpoint AmTech分析师道格·弗里德曼(Doug Freedman)上周二发布投资报告称,迫于盈利压力,Nvidia今后将积极进入x86 CPU,但主要将推出主流及低端产品,而不会在高端CPU领域同英特尔争抢市场。   弗里德曼认为,在当前x86 CPU技术专利中,多数由英特尔和AMD所持有(两家公司还签订了专利交叉授权协议),因此Nvidia很有可能走自家研发之路,“我认为Nvi
[单片机]
中国X86 CPU同主频能超越AMD?这才是真相
  日前,由北京市网信办、北京市公安局主办的北京国际互联网科技博览会暨世界网络安全大会在北京展览馆开幕。上海兆芯(VIA Alliance Semiconductor)以“自主安全可靠的国产x86解决方案”为主题,携公司自主设计研发的国产x86通用处理器,以及PC、服务器等参展。“首次公开亮相的兆芯ZX-D系列处理器及国产整机VR体验,更成为现场瞩目的焦点”——这种报道更是出现在一些媒体的稿件中。下面就随嵌入式小编一起来了解一下相关内容吧。 中国X86 CPU同主频能超越AMD?这才是真相   而且根据现场的一块展板,兆芯ZX-D的SPEC2006定点成绩达到20分,考虑到ZX-D只有2G主频,也就是2G主频下实现了20
[嵌入式]
x86重塑电信数据中心 加速广东移动向数据化服务商转型
近年来,我国电信业取得了巨大的成就。但随着互联网和移动互联网的蓬勃发展,电信运营商也面临着诸多挑战。 人们的通信需求正从单一的语音向更丰富的信息服务演进,运营商语音和短信、彩信营收不断下降,需要流量和信息服务等新业务来弥补收入。根据工信部最新数据显示,2016年上半年,我国移动数据收入占电信业收入的比例由2015年年底的28%快速提升至34%,首次超越移动语音成为电信业中占比最大的业务,行业全面步入以流量为主导的发展阶段。 另一方面,在营改增、网间结算价格下调和行业竞争加剧的大背景下,电信运营商投入不断压缩和减少,降低业务基础设施投入和系统维护成本将成为电信业长期的趋势。 激烈的行业竞争和来自互联网公司的跨界竞争,提
[网络通信]
出现“Unable to create configuration 'Debug' using tool chain ‘STM8’
用IAR打开STM8时,出现“Unable to create configuration 'Debug' using tool chain ‘STM8’, 出现这个问题的原因是按装的IAR不正确,要装ST for STM8 版本的,而不能用ST for ARM版本的 ST for ARM图标 ST for STM8 图标
[单片机]
出现“Unable to create configuration '<font color='red'>Debug</font>' using tool chain ‘STM8’
将心比芯 兆芯x86解决方案谱写国产品牌强音
2018年5月10日-12日,首届中国自主品牌博览会于上海展览中心成功举办。中国自主品牌博览会经党中央、国务院批准,以“中国品牌 世界共享”为主题,旨在展示我国自主品牌发展成就,扩大自主品牌知名度和影响力,塑造中国自主品牌良好形象,树立品牌经济发展理念,坚定自主品牌发展信心,拉动自主品牌产品消费,促进品牌强国建设,满足人们美好生活需要。 上海兆芯集成电路有限公司携自主设计研发的开先KX-5000系列8核处理器、ZX-200 IO扩展芯片亮相“中国自主品牌博览会——上海制造”板块,得到了相关领导和广大观众的高度关注,同时,兆芯带来的“将心比芯,为国芯点赞”互动活动更成为现场瞩目的焦点。 上海兆芯集成电路有限公司副总裁傅城博
[半导体设计/制造]
将心比芯 兆芯<font color='red'>x86</font>解决方案谱写国产品牌强音
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved