这里对这几个寄存器总结一下。

通用寄存器的主要用途

寄存器的分类 寄存器

主 要 用 途

数据

 

寄存器

AX

乘、除运算,字的输入输出,中间结果的缓存

AL

字节的乘、除运算,字节的输入输出,十进制算术运算

AH

字节的乘、除运算,存放中断的功能号

BX

存储器指针

CX

串操作、循环控制的计数器

CL

移位操作的计数器

DX

字的乘、除运算,间接的输入输出

变址
寄存器
SI

存储器指针、串指令中的源操作数指针

DI

存储器指针、串指令中的目的操作数指针

变址
寄存器
BP

存储器指针、存取堆栈的指针

SP

堆栈的栈顶指针

指令指针

IP/EIP  
标志位寄存器 Flag/EFlag  
32位

CPU的

段寄存器

16位CPU的

段寄存器

ES  附加段寄存器
CS  代码段寄存器
SS  堆栈段寄存器
DS  数据段寄存器
新增加的
段寄存器
FS  附加段寄存器
GS  附加段寄存器

这张表用来参照。(1)在8086CPU中只有这四个寄存器可以在[...]中进行内存单元的寻址。比如,下面的指令都是正确的:mov ax,[bx]mov ax,[bx+si]mov ax,[bx+di]mov ax,[bp]mov ax,[bp+si]mov ax,[bp+di]而下面都是错误的:mov ax,[cx]mov ax,[ax]mov ax,[dx]mov ax,[ds](2).在[...]中,这四个寄存器可以单独出现,或者只能以四种组合出现:bx和si、bx和di、bp和si、bp和di。比如下面都是正确的mov ax,[bx]mov ax,[si]mov ax,[di]mov ax,[bp]mov ax,[bx+si]mov ax,[bx+di]mov ax,[bp+si]mpv ax,[bp+di]mov ax,[bx+si+idata]mov ax,[bx+si+idata]mov ax,[bp+si+idata]mov ax,[bp+di+idata]下面就是错误的mov ax,[bx+bp]mov ax,[si+di](3)只要在[....]中使用寄存器bp,而指令汇总没有显示给出段地址,段地址就默认在ss中。 比如下面的指令。mov ax,[bp] 含义:(ax)=((ss)*16+(bp))mov ax,[bp+idata] 含义:(ax)=((ss)*16+(bp)+idata)mov ax,[bp+si] 含义:(ax)=((ss)*16+(bp)+(si))mov ax,[bp+si+idata] 含义:(ax)=((ss)*16+(bp)+(si)+idata)

转载于:https://www.cnblogs.com/huzhongzhong/archive/2011/08/01/2123743.html

汇编语言之寄存器使用(bx,si,di,bp)相关推荐

  1. 内存地址[bx+idata]、[bx+si/di]、[bx+si/di+idata]的灵活定位

    内存地址[bx+idata].[bx+si/di].[bx+si/di+idata]的灵活定位 一. 实验目的 二.实验内容 三. 实验步骤 四. 结果 五. 心得体会 一. 实验目的 1. 掌握an ...

  2. Win-MASM64汇编语言-通用寄存器AX/BX/CX/DX/SI/DI/BP

    (1)AX: ①用于数据中转:高级语言反汇编中CPU通常使用ax进行中转数据,比如要往ds寄存器中放数据的话,不可以mov ds,0001H这样写,而是应该先mov ax,0001H,然后再mov d ...

  3. 汇编中的la_汇编语言中,SP,BP ,SI,DI作用?

    这个很简单: sp:表示栈顶指针,指向栈顶地址.与SS相配合使用.ss为栈段. bp:是基址指针,段地址默认在SS中.可以定位物理地址,比如:"mov ax,[bp+si+6]/mov ax ...

  4. BX、DI、SI、BP总结

    在8086CPU中,只有这四个寄存器可以放在[-]内来进行内存单元的寻址 下面的指令是错误的 mov ax ,[cx] mov ax,[ax] mov ax,[dx] 在[-]中,bx和bp不能同时出 ...

  5. 贺利坚老师汇编课程36笔记:[BX+SI+IDATA]和[BX+DI+IDATA]寻址

    指路老师的博客 [BX+SI+IDATA]表示一个内存单元,偏移地址(BX)+(SI)+IDATA,BX中数值加SI中数值加IDATA立即数,段地址DS 往内存里写数 21000H BE 210001 ...

  6. 贺利坚老师汇编课程35笔记:[BX+SI]和[BX+DI]寻址

    指路老师的博客 BX基址,SI变址,[BX+SI]表示内存单元,称作基址变址寻址,默认段地址DS 内存中放数 写代码 调试看结果 21000H BE 210001H 00 210002H 06 210 ...

  7. 汇编中的通用基础寄存器ax,bx,cx,dx等的含意及作用解释

    对一些汇编语言中基础的寄存器的代表的字符及含意(基础的) 一.段寄存器 在程序中起到声明段的作用,一般与assume同时出现 1.DS 数据段寄存器 2.ES 附加数据段寄存器 3.CS 代码段寄存器 ...

  8. 汇编语言之寄存器(CPU工作原理)

    1.介绍 一个典型的CPU,由运算器.控制器.寄存器等器件组成,对于游戏修改者来说,重点学习寄存器,其它不必管. 不同的CPU,寄存器的个数.结构是不相同的,8086CPU有14个寄存器,每个寄存器有 ...

  9. [汇编语言]标志寄存器

    目录 一.ZF标志 二.PF标志 三.SF标志 四.CF标志 五.OF标志 六.adc指令 七.sbb指令 八.cmp指令 九.检测比较结果的条件转移指令 十.DF标志和串传送指令 十一.pushf和 ...

最新文章

  1. 使用jdk8新特性实现数据库性能优化
  2. 圆周率一千万亿位_圆周率已经到了十万亿位了,为什么还要计算下去?有什么意义吗?...
  3. pythonpop方法桐柏到郑州大_python脚本之一键移动自定格式文件方法实例
  4. mysql里面的sql_mysql工作中的sql
  5. webview与android java交互
  6. IDEA对新建java线程池的建议
  7. 如何在本站使用脚本格式的计数器--终于找到解决办法!
  8. 【POJ】【3164】Commond Network
  9. 查看linux文件的日期格式,5个在Linux中管理文件类型和系统时间的有用命令
  10. 基于ZigBee设计的天气监测系统
  11. 英雄联盟修复服务器,快速修复win10专业版玩英雄联盟连接不上服务器方法
  12. 三极管的下拉电阻作用是什么?
  13. 【windows】win10如何安装使用bitlocker
  14. Java Web --HTML(尚硅谷2022版Javaweb)
  15. BNN Pytorch代码阅读笔记
  16. 自编码实例3:卷积网络的自编码
  17. 02_ue4界面介绍
  18. 使用flex时的自动换行
  19. JavaScript面试题整理汇总
  20. Mybatis提取BigDecimal字段值显示丢失末尾0精度的问题解决

热门文章

  1. c# SQLServer导入大批量数据
  2. JavaScript新手学习笔记4——我记不住的几个坑:短路逻辑、按值传递、声明提前...
  3. 用今日头条的方法推荐公开课
  4. python学习之路基础篇(第四篇)
  5. JAVA多线程之Runnable和Thread比较
  6. Activity栈管理(二):Launch Mode
  7. Android Stadio调试gradle 插件 || Android Stadio 远程调试 || Anroid APT调试
  8. requestLayout 无效
  9. 我来告诉你【Redis】入门 一
  10. JAVA中复制数组的方法