汇编干货笔记->7.1 更灵活的数组
2017-10-06 本文已影响77人
Dongle聊测试















最后
欢迎光临小站:yuruotong.com
以下是文字提取部分,阅读完毕的同学可以离开了
SI和DI是和bx;功能相近;的寄存器
只不过两者不能分成8位寄存器
只能以;16位寄存器;的形式存在
既然与bx;功能相近;
那么SI和DI也能;实现;下面的功能
下面来考虑一个问题
注意一下:这段程序add si,;2
因为数据要;存在ax中;
ax是16bit,一个数据是8bit
自然一次性要放入;两个数据;
下面我要介绍一个更灵活的;内存定位;方法
那就是:;[bx+si];
其实还有另一种更方便的写法[bx][si]
mov ax,[bx][si]
如果你觉得还是;不够灵活;
你;还能;这么用
mov ax,;[bx+si+idata];
别告诉我
你的;表情;是下面这样
CPU为什么要设计这么多的寻址方式呢
是吃饱撑的,还是;别有用意;
请看下面的问题
我敢打赌,你肯定用到了;C语言思维;
所以的程序很可能是;两层循环;
比如下面这样
但不要忘了
汇编的循环是只有;一个计数器;
;CX;
我们不能两个循环都用同一个;CX;
这样程序;肯定出错;
其实解决方法;很简单;
用一个临时寄存器dx把cx;存起来;
这么做确实是;解决了问题;
但你要知道
寄存器;很宝贵;
我们的寄存器;数量有限;
怎么可能用在存放;临时变量;cx上
我们急需一种可;持续再生;模式
聪明的你可能已经;想到了;
;用内存!;
但是用内存的话又;不好记;
于是我想到了;栈;
栈是;存储临时数据;的不二之选
用它不用;记忆内存单元地址;
比如下面程序