汇编语言--寄存器间接寻址
来源:互联网 发布:网络电话录音 编辑:程序博客网 时间:2024/05/01 18:09
在汇编语言中 , 我们主要涉及了7中存储方式 , 而涉及到数据在寄存器以及存储器之间的存取以及提出的方式就要显得复杂一些 . 本文旨在以通俗的语言描述这些寻址方式之间的联系 .
在认识以及应用这些寻址方式之前 , 我们首要应当了解一个数据在寄存器当中的物理地址是怎么算的 .
物理地址由段址和段内的偏移量决定的 , 这个段址有代码段寄存器(CS) , 数据段寄存器(DS) , 堆栈段寄存器(SS) , 都可以应用 , 具体用哪个可以自己来决定 . 偏移量通常可以存放在BX , BP , SI , DI中 , 当然了 , 具体想存在哪个里面自己定义就好 . 如果要用BP , 那么默认的段地址是在SS段 , 其他的默认是在DS段 .
举个例子 : 我有一个数L , 要把这个数放在存储器中 , 然后在之后要采用寄存器间接寻址找到它 , 我们可以这样做 :
MOV AX , L
MOV SI , 2000H ; 那个2000H是我们自己定义的哟
MOV [SI] , AX ; 这样子会把我们AX寄存器中L的值存放在[SI]这个地址里 .
[SI] 表示的是物理地址 , 计算的方式就是DS*16+SI ; 当然我们也不必知道它是怎么来的 , 我们只是了解它的意义就好了 .
在之后要想再使用这个L的值的话 , 就可以这样来做:
MOV AX , [SI]
这样子我们就可以通过AX这个寄存器来进行一些运算啦 .
同样的 , 如果一个程序中需要几个不同的像L一样的变量 , 那么我们在把它们放到存储器的时候只需要给 SI 赋不同的值就行了 , 不过要记得放在哪里了哟 .
利用这样的寻址方式来进行编程虽然比立即寻址要麻烦一些 , 但是从程序执行的效率来看 , 还是要更好一些 .
- 汇编语言--寄存器间接寻址
- 寄存器间接寻址方式
- 寄存器间接寻址方式
- 操作数的寻址方式(寄存器间接,基址寻址,间址寻址,比例间接寻址)
- 间接寻址与寄存器寻址,基址寻址与变址寻址
- 间接寻址
- 间接寻址
- 间接寻址
- 寻址方式 寄存器寻址方式 立即数寻址方式 存储器寻址方式: 直接寻址方式,寄存器间接寻址方式,变址和基址寻址方式,基址变址寻址方式 串操作寻址方式 I/O端口寻址方式
- 寄存器寻址
- 间接寻址表
- 数据结构之间接寻址
- 间接寻址Test1
- 间接寻址--简单操作
- 间接寻址实现
- 间接寻址的实现
- 实验二间接寻址
- C++间接寻址实现
- 【非常高%】【codeforces 733A】Grasshopper And the String
- UE4 4.13 引擎bug
- 扒一扒 laravel的消息通知(上)
- LeetCode 171. Excel Sheet Column Number
- pip或者pycharm安装模块出错问题
- 汇编语言--寄存器间接寻址
- 设计模式六大原则(1):单一职责原则(转载)
- 【贪心】CODE[VS] 3377 [Mz]接水问题2 (模拟+优先队列(堆))
- 第八周训练a题 Balance
- Cydia安装插件出现Size Mismatch的解决方法
- win10 mysql服务无法启动,提示“服务在启动后停止”
- x64 - reject driver loading
- 迪杰斯特拉算法
- git还原所有修改