汇编语言之寄存器使用(bx,si,di,bp)
这里对这几个寄存器总结一下。
通用寄存器的主要用途
寄存器的分类 | 寄存器 |
主 要 用 途 |
|
通
用 寄 存 器 |
数据
寄存器 |
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)相关推荐
- 内存地址[bx+idata]、[bx+si/di]、[bx+si/di+idata]的灵活定位
内存地址[bx+idata].[bx+si/di].[bx+si/di+idata]的灵活定位 一. 实验目的 二.实验内容 三. 实验步骤 四. 结果 五. 心得体会 一. 实验目的 1. 掌握an ...
- Win-MASM64汇编语言-通用寄存器AX/BX/CX/DX/SI/DI/BP
(1)AX: ①用于数据中转:高级语言反汇编中CPU通常使用ax进行中转数据,比如要往ds寄存器中放数据的话,不可以mov ds,0001H这样写,而是应该先mov ax,0001H,然后再mov d ...
- 汇编中的la_汇编语言中,SP,BP ,SI,DI作用?
这个很简单: sp:表示栈顶指针,指向栈顶地址.与SS相配合使用.ss为栈段. bp:是基址指针,段地址默认在SS中.可以定位物理地址,比如:"mov ax,[bp+si+6]/mov ax ...
- BX、DI、SI、BP总结
在8086CPU中,只有这四个寄存器可以放在[-]内来进行内存单元的寻址 下面的指令是错误的 mov ax ,[cx] mov ax,[ax] mov ax,[dx] 在[-]中,bx和bp不能同时出 ...
- 贺利坚老师汇编课程36笔记:[BX+SI+IDATA]和[BX+DI+IDATA]寻址
指路老师的博客 [BX+SI+IDATA]表示一个内存单元,偏移地址(BX)+(SI)+IDATA,BX中数值加SI中数值加IDATA立即数,段地址DS 往内存里写数 21000H BE 210001 ...
- 贺利坚老师汇编课程35笔记:[BX+SI]和[BX+DI]寻址
指路老师的博客 BX基址,SI变址,[BX+SI]表示内存单元,称作基址变址寻址,默认段地址DS 内存中放数 写代码 调试看结果 21000H BE 210001H 00 210002H 06 210 ...
- 汇编中的通用基础寄存器ax,bx,cx,dx等的含意及作用解释
对一些汇编语言中基础的寄存器的代表的字符及含意(基础的) 一.段寄存器 在程序中起到声明段的作用,一般与assume同时出现 1.DS 数据段寄存器 2.ES 附加数据段寄存器 3.CS 代码段寄存器 ...
- 汇编语言之寄存器(CPU工作原理)
1.介绍 一个典型的CPU,由运算器.控制器.寄存器等器件组成,对于游戏修改者来说,重点学习寄存器,其它不必管. 不同的CPU,寄存器的个数.结构是不相同的,8086CPU有14个寄存器,每个寄存器有 ...
- [汇编语言]标志寄存器
目录 一.ZF标志 二.PF标志 三.SF标志 四.CF标志 五.OF标志 六.adc指令 七.sbb指令 八.cmp指令 九.检测比较结果的条件转移指令 十.DF标志和串传送指令 十一.pushf和 ...
最新文章
- 使用jdk8新特性实现数据库性能优化
- 圆周率一千万亿位_圆周率已经到了十万亿位了,为什么还要计算下去?有什么意义吗?...
- pythonpop方法桐柏到郑州大_python脚本之一键移动自定格式文件方法实例
- mysql里面的sql_mysql工作中的sql
- webview与android java交互
- IDEA对新建java线程池的建议
- 如何在本站使用脚本格式的计数器--终于找到解决办法!
- 【POJ】【3164】Commond Network
- 查看linux文件的日期格式,5个在Linux中管理文件类型和系统时间的有用命令
- 基于ZigBee设计的天气监测系统
- 英雄联盟修复服务器,快速修复win10专业版玩英雄联盟连接不上服务器方法
- 三极管的下拉电阻作用是什么?
- 【windows】win10如何安装使用bitlocker
- Java Web --HTML(尚硅谷2022版Javaweb)
- BNN Pytorch代码阅读笔记
- 自编码实例3:卷积网络的自编码
- 02_ue4界面介绍
- 使用flex时的自动换行
- JavaScript面试题整理汇总
- Mybatis提取BigDecimal字段值显示丢失末尾0精度的问题解决
热门文章
- c# SQLServer导入大批量数据
- JavaScript新手学习笔记4——我记不住的几个坑:短路逻辑、按值传递、声明提前...
- 用今日头条的方法推荐公开课
- python学习之路基础篇(第四篇)
- JAVA多线程之Runnable和Thread比较
- Activity栈管理(二):Launch Mode
- Android Stadio调试gradle 插件 || Android Stadio 远程调试 || Anroid APT调试
- requestLayout 无效
- 我来告诉你【Redis】入门 一
- JAVA中复制数组的方法