汇编语言(王爽) 第3章寄存器(内存访问)

摘要:
使用CS:IP指向,这样CPU将在我们定义为堆栈的代码段(称为堆栈段)中执行指令段,并指向SS:SP。当CPU执行堆栈操作(如推送和弹出)时,我们定义的堆栈段将用作堆栈空间~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

3.1 内存中的字

内存中的字是16位的,以2个内存单元存储

地址大的存高位(字的左边8位),地址小的存低位(字的右边8位)

字单元:存放1个字形数据的内存单元,由2个内存单元组成,共16位

汇编语言(王爽) 第3章寄存器(内存访问)第1张

3.2 DS

一个寄存器的名字,用来放数据段的段地址

mov 指令可以把数据转到寄存器,一个寄存器的内容转到另一个寄存器,内存单元(字单元)转到寄存器

但是一般会mov ax,1000h;mov ds,ax而不是直接mov ds,1000h

因为8086CPU不支持直接把内存单元的东西转到段寄存器上面

3.3字的传送

直接上栗子

mov ax,1000h

mov ds,ax;

mov ax,[0]

假设10000h的数据是11H,10001h的数据是22H

那么指令执行好了之后,ax的数据就是2211H

说明内存中的东西到寄存器中是以1个字单元传输的,也就是2个字节

3.4 mov add sub

移动,加减把

3.5 数据段

把内存中砍一段处理存放数据,人为规定的,系统不认识

想系统认识这段内存是放数据的,就用ds中的段地址指向其地址就好了

3.6栈

栈也是把一段内存拿过来,遵循LIFO原则

用SS:SP识别内存段是一个栈

3.7 cpu提供的栈机制

基本指令就出栈和入栈,以字为单位进行

栈顶元素用SS:SP2个寄存器规定

入栈先SP+2再push进去

出栈先pop出去再sp-2

3.8 超越栈

因为栈是一段内存空间,有大小

push太多和pop太多都会跑到栈外面,影响别的内存

8086没办法限制栈顶和栈尾,只能自己注意下了

3.10栈段

也就是内存段,但是用SS:SP指向的

SP是个16位的寄存器,所以栈段范围是0000-ffff

段小结

段存放数据叫数据段,段地址是DS,当用mov,add,sub等指令访问内存单元的时候,CPU就把我们定义的数据段中的内容当数据来访问

段存放代码叫代码段,也就是指令段把。用CS:IP指向,这样CPU就会执行我们定义的代码段中的指令

段当做栈叫栈段,指向是SS:SP,当CPU进行栈操作的时候,如push,pop就把我们定义的栈段当栈空间用

完工~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

免责声明:文章转载自《汇编语言(王爽) 第3章寄存器(内存访问)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Boost库简介浅析小程序云原生数据库的设计与应用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Host是如何与EC通信的

第一种方式:遵循ACPI规范完成通信,通过LPC的62h、64h偏移/端口。 此种方式适合host对EC进行读写操作。 EC提供256字节的可被系统读写的RAM空间,EC的资源在该RAM空间映射,通过访问对应偏移(0x00~0xFF),即可操作对应的资源。实际上就是外部RAM的前256字节。EC会将键盘、触摸板、电池、温度传感器等一些设备的状态信息保存在此...

MODBUS串行通信协议详细说明

第一章  简介 本文详细地描述了装置在MODBUS 通讯模式下的输入和输出命令、信息和数据,以便第三方使用和开发。 1.1 串行通讯协议的目的 通信协议的作用是使信息和数据在上位机主站和装置之间有效地传递,它包括: (1)   允许主站访问和设定所接装置的全部设置参数; (2) 允许访问装置的所有测量数据。     第二章  装置 MODBUS串行通信协议...

SimpleScalar分析

1.编写测试程序 #include <stdio.h> int main() { printf("Hello world!\n"); return 0; } 2.编译程序 bin/sslittle-na-sstrix-gcc hello.c 含义:用simplescalar的编译器对hello.c进行编译,以生成能够在模拟器中运行的可执行...

【转】说说Timing这回事

【转】说说Timing这回事 Intro 问:一个FPGA设计项目需要用哪些评判标准来检验? 功能正确; 时序收敛; 资源消耗少。 时序收敛,即Timing Closure,意思是使设计的各项时序指标能满足设计前所制定要求。因此,整个过程分为两部分: 制定时序要求 满足时序要求 Timing Constraints Classes 制定时...

FPGA基础知识关键点摘要

FPGA基础知识关键点摘要 一.组合逻辑和时序逻辑的区别:组合逻辑与输入直接实时相关,时序逻辑还必须在时钟上升沿出发后输出新值,有没有时钟输入是他们最大的区别!组合时序容易出现竞争冒险现象出现亚稳态,时序逻辑不会出现,且更容易达到时序收敛所以必须很好的掌握时序逻辑 设置不使用的 IO 为 为 in-tri 状态 RTL,Register Transfer...

汇编指令mov、add、sub、jmp

mov:寄存器,数据 mov:寄存器,寄存器 mov:寄存器,内存单元 mov:段寄存器,内存单元 mov:内存单元,寄存器 mov:内存单元,段寄存器 mov:段寄存器,寄存器 mov:寄存器,段寄存器 add:寄存器,数据 add:寄存器,寄存器 add:内存单元,寄存器 add:寄存器,内存单元 sub:寄存器,数据 sub:寄存器,寄存器 sub:...