第三章——寄存器(内存访问)

本文详细介绍了8086CPU中的寄存器使用方式,特别是数据寄存器DS的作用及访问机制,并讲解了如何通过寄存器进行数据传送。此外,还探讨了栈的基本概念,包括栈的运作机制、栈寄存器SS和栈指针SP的使用方法,以及栈满和栈空可能导致的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为什么第三章还是寄存器?
很明显这一章和上一章并不相同,因为后面多了四个字。
很显然上一章,还有一些东西还没有讲完。
所以我们再来看一看第三章讲了些啥。

字单元:即存放一个字型数据(word,16位)的内存单元,由两个地址连续的内存单元(8位)组成。
DS(data segment)是数据寄存器,用于存储需要访问的数据。
[address]:这个是用于定位DS中的数据的,其中address为偏移地址,那么段地址呢?命令执行时,CPU会自动取DS中的数据,作为段地址。
如:

mov al, [0]

8086CPU不支持将数据直接送入DS,什么意思?也就是说,我们要想把数据送入DS,我们需要先将数据送入寄存器,再送入DS,如:

mov bx, 1000H
mov ds, bx

这里送入DS,不是指将数据送入数据栈,而是将地址送入ds指针。
如果是送入数据,需要这样做:

mov bx,1000H
mov ds,bx
mov [0],al

这里[]内只放了一个0,这里表示偏移地址,那么段地址呢?
此时CPU会将ds中的内容作为段地址,从而实现寻址。

刚刚只是进行字节型数据的传送(8bit),但是我们8086CPU是16位的,也就是说我们可以一次传送一个字,所以这里做个示范:(通过传入寄存器来实现字的传送)

mov bx,1000H
mov ds,bx
mox ax,[0]
moc [0],cx

这里提示一下,add和sub是不能对cs和ds操作的。

汇编指令补充:

sub A,B     //指将A中的值减去B的值

还有一个数据段的额概念,和前面的代码段类似,就不再赘述。
接下来是栈,栈的基本定义没有什么好讲的。
我们来看一下CPU提供的栈机制。
首先,我们对于栈有两个操作:

push A      //将A的数据放入栈中,A是寄存器或者[address]
pop A       //将栈顶的数据放入A中,A的含义同上

(注:push和pop的操作是对字的操作,以字为单位)
这也是两个非常简单的操作(基本上学过编程的人都知道)。
那么同样的问题来了,那么这个栈在哪呢?
CPU会将栈的数据放在内存的哪个位置呢?
所以这就涉及到另外两个寄存器了SS和SP
SS(stack segment),即栈寄存器。
和CS类似,SS中存放的是段地址,而SP存放的是偏移地址。
所以SS:SP指向的就是我们所使用的栈的栈顶元素
(栈顶字的低地址)
还有一点,栈底是一个栈空间的高位,也就是说该栈的指针随着数据的压入,是由高位指向低位。
比如:SS:SP指向1000EH,再压入数据时,SS:SP指向1000CH.
下面是一个非常重要的问题,就是栈空间只是我们自己YY的一个东西,CPU永远不知道我们究竟把哪一段看作是栈,也就是说,CPU不会报告给我们栈溢出的问题
栈满时,如果再次放入数据,就会覆盖与之相邻的其他内存
同样,栈空时,如果再次取数据,也会去到与之相邻的内存的数据。
所以,这个栈空间的问题只能由我们程序员自己注意了。
还有一个概念,栈段,应该都知道啥意思(仿照代码段和数据段),我就不讲了。
这样的话,第三章就这些了。

补充:debug时d命令的使用。
示例:d 1000:0 3
前面1000是段地址,后面则是偏移地址的范围。

内容概要:本文深入探讨了多种高级格兰杰因果检验方法,包括非线性格兰杰因果检验、分位数格兰杰因果检验、混频格兰杰因果检验以及频域因果检验。每种方法都有其独特之处,适用于不同类型的时间序列数据。非线性格兰杰因果检验分为非参数方法、双变量和多元检验,能够在不假设数据分布的情况下处理复杂的关系。分位数格兰杰因果检验则关注不同分位数下的因果关系,尤其适合经济数据的研究。混频格兰杰因果检验解决了不同频率数据之间的因果关系分析问题,而频域因果检验则专注于不同频率成分下的因果关系。文还提供了具体的Python和R代码示例,帮助读者理解和应用这些方法。 适合人群:从事时间序列分析、经济学、金融学等领域研究的专业人士,尤其是对非线性因果关系感兴趣的学者和技术人员。 使用场景及目标:①研究复杂非线性时间序列数据的因果关系;②分析不同分位数下的经济变量因果关系;③处理不同频率数据的因果关系;④识别特定频率成分下的因果关系。通过这些方法,研究人员可以获得更全面、细致的因果关系洞察。 阅读建议:由于涉及较多数学公式和编程代码,建议读者具备一定的统计学和编程基础,特别是对时间序列分析有一定了解。同时,建议结合具体案例进行实践操作,以便更好地掌握这些方法的实际应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值