Linux 之 AT&T汇编语言 mov、add、sub指令、数据段
mov指令的几种形式:
mov 寄存器、 数据
mov ax,8888
mov 寄存器、 寄存器
mov bx,ax
mov 寄存器、 内存单元
mov ax,[0]
mov 内存单元、寄存器
mov [0],ax
mov 段寄存器、寄存器
mov ds,ax
add和sub指令和mov一样,都有2个操作对象。
sub和add类似,不过是相减,
sub ax,9 给ax减9,之后的结果赋值给ax
sub ax,bx 语意是ax = bx - ax
sub ax,[0] 将偏移地址为0的内存单元 - ax 再赋值给ax
试一下:能不能用他们直接操作段地址? (试过了,不行)
3.5 数据段
前面讲过,对于8086 PC机,我们可以根据需要将一组内存单元定义为一个段(可以是代码段,数据段等)
如何访问内存中的数据段呢?
将一段内存当作数据段,是我们在编程时的一种安排,我们可以在具体操作的时候,
用DS存放数据段的段地址,再根据需要,用相关指令访问数据段中的具体单元
mov ax,123BH
给AX寄存器里放123BH
mov ds,ax
将123BH送入DS中,作为数据段的段地址。
mov ax,0
用AX存放累加结果
add ax,[0]
将数据段的第一个字,(偏移地址为0),加到AX中,会把1也拖过去做高位字节,因为0那里是八位的数据,要凑齐16位的,
add ax,[2]
将数据段的第三个字(0.1.2),(偏移地址为2),加到AX中去,会把3也拖过去。
add ax,[4]
将数据段的第五个字(0.1.2.3.4),(偏移地址为4),加到AX中去,会把5也拖过去。
3.1~3.5,
字在内存单元中存储时,要用两个地址连续的内存单元来存放
字的低位字节存放在低地址单元,高位字节存放在高地址单元中。
用MOV指令要访问内存单元的时候,可以在MOV指令中只给出单元的偏移地址。
此时,段地址默认在DS寄存器中。
在内存和寄存器之间传送字型数据时,高地址单元和高8位寄存器,低地址单元和低8位寄存器相对应。
mov,add,sub是具有两个操作对象的指令,jmp是具有一个操作对象的指令
Linux 之 AT&T汇编语言 mov、add、sub指令、数据段的更多相关文章
- Linux从头学03:如何告诉 CPU,代码段、数据段、栈段在内存中什么位置?
作 者:道哥,10+年的嵌入式开发老兵. 公众号:[IOT物联网小镇],专注于:C/C++.Linux操作系统.应用程序设计.物联网.单片机和嵌入式开发等领域. 公众号回复[书籍],获取 Linux. ...
- linux平台学x86汇编语言学习集合帖
linux平台学x86汇编语言学习集合帖 linux平台学x86汇编(一):https://blog.csdn.net/shallnet/article/details/45543237 linux平 ...
- Linux内核--网络栈实现分析(七)--数据包的传递过程(下)
本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7545855 更多请查看专栏,地 ...
- 汇编语言---call和ret指令
汇编语言--call和ret指令 call和ret指令 call和ret指令都是转移指令,它们都修改IP,或同时修改CS和IP. 它们经常被共同用来实现子程序的设计. ret和retf ret指令用栈 ...
- Linux内核--网络栈实现分析(二)--数据包的传递过程--转
转载地址http://blog.csdn.net/yming0221/article/details/7492423 作者:闫明 本文分析基于Linux Kernel 1.2.13 注:标题中的”(上 ...
- 汇编语言-[BX]和loop指令
汇编语言-[BX]和loop指令 [BX]指令介绍 mov ax,[bx] 功能: bx为偏移地址,段地址默认为ds.因此,上面指令作用就是将ax中的数据送入内存ds:bx处,即:((ds)*16 + ...
- 数据段描述符和代码段描述符(二)——《x86汇编语言:从实模式到保护模式》读书笔记11
这篇博文,我们编写一个C语言的小程序,来解析数据段或者代码段描述符的各个字段.这样我们阅读原书的代码就会方便一点,只要运行这个小程序,就可以明白程序中定义的数据段或者代码段的描述符了. 这段代码,我用 ...
- LINUX下目标文件的BSS段、数据段、代码段
http://blog.chinaunix.net/uid-27018250-id-3867588.html bss 未初始化的全局数据 data 已经初始化的全局数据 text 代码段,机器指令 r ...
- 【转】linux代码段,数据段,BSS段, 堆,栈
转载自 http://blog.csdn.net/wudebao5220150/article/details/12947445 linux代码段,数据段,BSS段, 堆,栈 网上摘抄了一些,自己组 ...
随机推荐
- Java 连接 SqlServer工具类
1.下载 server2008R2驱动jar包 下载jar包 http://www.microsoft.com/zh-cn/download/confirmation.aspx?id=21599 2. ...
- Redis 主从模式
系统:Centos6.6x64安装目录:/usr/local/主:192.168.100.103从:192.168.100.104 ,下载安装: 安装依赖: # yum install gcc tcl ...
- SpringMVC上传文件的三种方式(待整理...)
参考链接 http://www.cnblogs.com/fjsnail/p/3491033.html
- SpringBoot2.x过滤器Filter和使用Servlet3.0配置自定义Filter实战
补充:SpringBoot启动日志 1.深入SpringBoot2.x过滤器Filter和使用Servlet3.0配置自定义Filter实战(核心知识) 简介:讲解SpringBoot里面Filter ...
- 【CXF】com.sun.xml.internal.ws.fault.ServerSOAPFaultException: Client received SOAP Faul
在客户端生成代码之后测试出现错误: com.sun.xml.internal.ws.fault.ServerSOAPFaultException: Client received SOAP Faul ...
- Freemarker导出word的简单使用
1.模板 username:${username} password:${password} <#list mylist as item> ${item.name!} ${item.pas ...
- ROS 时间同步问题
0. 问题 两台ubuntu主机无法与一台debian主机使用分布式通信,摄像头发出的话题机器人收不到,考虑是时间同步的问题. 也可能是系统不统一的问题; 今天在家实验了一下,时间差6min,照样可以 ...
- SpringBoot整合日志
Java日志 日志的接口层.抽象层 日志的实现 JCL(Jakarta Commons Logging) SLF4J(Simple Logging Facade for Java) Jboss-Log ...
- GetStockObject 理解
原文地址:https://www.cnblogs.com/Clingingboy/archive/2013/04/13/3017952.html GetStockObject在图形编程中是常用API之 ...
- 图解修改Maven本地仓库存储路径
1 从Maven中心仓库下载到本地的jar包的默认存放在"${user.home}/.m2/repository"中,${user.home}表示当前登录系统的用户目录(如&quo ...