通用寄存器

第二章寄存器总结

痴心易碎 提交于 2020-01-02 06:27:38
1.通用寄存器 (1)数据寄存器 数据寄存器共有4个寄存器AX、BX、CX、DX,用来保存操作数或运算结果等信息。 AX寄存器称为累加器。使用频度最高,用于算术、逻辑运算以及与外设传送信息等。 BX寄存器称为基址寄存器。常用于存放存储器地址。 CX寄存器称为计数器。一般作为循环或串操作等指令中的隐含计数器。 DX寄存器称为数据寄存器。常用来存放双字数据的高16位,或存放外设端口地址。 (2)变址和指针寄存器 变址和指针寄存器包括SI、DI、SP、BP 4个16位寄存器,主要用于存放某个存储单元的偏移地址。 SI是源变址寄存器。 DI是目的变址寄存器,在字符串操作中,SI和DI都具有自动增量或减量的功能。 SP为堆栈指针寄存器,用于存放当前堆栈段中栈顶的偏移地址。 BP为基址指针寄存器,用于存放堆栈段中某一存储单元的偏移地址。 2.段寄存器 8086 CPU的4个16位的段寄存器分别称为代码段寄存器CS,数据段寄存器DS,堆栈段寄存器SS,附加数据段寄存器ES。段寄存器用来确定该段在内存中的起始地址。 代码段用来存放程序的指令序列。CS存放代码段的段首址,指令指针寄存器IP指示代码段中指令的偏移地址。 3.指令指针 8086 CPU中的指令指针IP,它总是保存下一次将要从主存中取出指令的偏移地址,偏移地址的值为该指令到所在段段首址的字节距离。在目标程序运行时

汇编语言——寄存器(CPU的工作原理 ax,bx,cx,dx通用寄存器 cs代码段寄存器)

…衆ロ難τιáo~ 提交于 2020-01-02 06:22:20
寄存器 一个典型的CPU由运算器、控制器、寄存器等器件组成,这些器件靠内部总线相连。(外部总线是上一篇博客说的内存总线,数据总线,控制总线) 内部总线实现CPU内部各个器件之间的联系。 外部总线实现CPU和主板上其它器件的联系。 CPU中主要的部件是寄存器,寄存器是CPU中我们可以使用指令读写的部件(通过改变各种寄存器的内容来实现对CPU的控制) 不同的CPU寄存器的个数也不同,8086CPU有14个寄存器 它们的名称为:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW。 1、通用寄存器 a.简介 8086CPU所有的寄存器都是16位的,可以存放两个字节。(1Byte=8bit) AX、BX、CX、DX 通常用来存放一般性数据被称为 通用寄存器。 一个16位寄存器所能存储的数据的最大值为: 2 16 -1 。 示例: 数据:20000 二进制表示:0100111000100000 在寄存器AX中的存储: 四个寄存器都可以分为 两个独立的8位寄存器 使用。 AX可以分为AH和AL; BX可以分为BH和BL;CX可以分为CH和CL; DX可以分为DH和DL。 AX的低8位(0位~7位)构成了 AL寄存器 ,高8位(8位~15位)构成了 AH寄存器 ,它们都是可以独立使用的8位寄存器。一个8位寄存器所能存储的数据的最大值是2 8 -1。 b.汇编指令

第二章寄存器

我只是一个虾纸丫 提交于 2020-01-02 06:22:04
第一章需要补充说明的是内存地址空间,对CPU来说,系统中的所有存储单元都处于一个统一的逻辑存储器中,它的容量受CPU寻址能力的限制,这个逻辑存储器就是我们所说的内存地址空间。这个概念比较抽象,需要进行一些编程实践增加更感性的认识。 在CPU中,有四种主要的部件。运算器,控制器,寄存器,内部总线。这里的内部总线用于CPU内部进行各种信息的传递,与第一章所讲的控制总线,数据总线,地址总线不同,第一章所描述的总线属于外部总线,作为CPU与外部期间进行信息传递的通路。运算器用于各种信息的处理,寄存器用于信息的处理,控制器用于控制信息的处理。对于利用汇编编程来说,寄存器是主要操作的部件,不同的CPU中寄存器的个数和种类是不同的。 8086CPU所有的寄存器都是16位的,可以存放两个字节,一个字节8位。AX、BX、CX、DX 通常用来存放一般性数据被称为通用寄存器。通用寄存器(重点)8086上一代CPU中的寄存器都是8位的,为保证兼容性,这四个寄存器都可以分为两个独立的8位寄存器使用。AX可以分为AH和AL;BX可以分为BH和BL;CX可以分为CH和CL; DX可以分为DH和DL。 AX的低8位(0位~7位)构成了AL寄存器,高8位(8位~15位)构成了AH寄存器。AH和AL寄存器是可以独立使用的8位寄存器,如果当成是8位寄存器使用,那么他们就是独立的,没有任何关系。

汇编语言第二章知识梳理及思考

蓝咒 提交于 2020-01-02 06:18:22
第二章 寄存器(CPU工作原理) CPU概述 CPU由运算器、控制器、寄存器等器件组成,这些器件靠内部总线相连。 内部总线实现CPU内部各个器件之间的联系。 外部总线实现CPU和主板上其他器件的联系。 寄存器概述 8086CPU有14个寄存器: AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW。 2.1通用寄存器 8086CPU所有的寄存器都是16位的,可以存放两个字节。 通用寄存器:AX、BX、CX、DX通常用来存放一般性数据。 以AX为例,寄存器的逻辑结构: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 16位数据在寄存器中的存放情况 数据:18 二进制表示:10010 在寄存器AX中的存储: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0(AX) 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 一个16位的寄存器所能存储的数据的最大值为2^16-1 一个8位的寄存器所能存储的数据的最大值为2^8-1 为了保证兼容性,四个通用寄存器都可以分为两个独立的8位寄存器使用。 AX=AH(高8位(8~15位))+AL(低8位(0~7位)); BX=BH+BL; CX=CH+CL; DX=DH+DL; 2.2字在寄存器中的存储 一个字可存放在一个十六位的寄存器中

第二章知识梳理

此生再无相见时 提交于 2020-01-02 06:18:05
1.CPU 由运算器、控制器、寄存器等器件构成,这些器件靠内部总线(区别于前面所说的外部总线)相连。 内部总线:实现CPU内部各个器件的相连。 外部总线:实现CPU和主板上各个器件的相连。 2.寄存器: 对于汇编语言,是CPU中的主要部件。程序员通过改变各种寄存器的内容实现对CPU的控制。 不同CPU寄存器的个数、结构不相同。 8086CPU14个寄存器。 3.通用寄存器。 8086CPU:所有寄存器都是16位的,AX,BX,CX,DX被称为通用寄存器。 AX,BX,CX,DX这四个存储器可分为两个独立的8位寄存器来使用。AX(BX,CX,DX)分为A(B,C,D)H和A(B,C,D)L; 4.字在寄存器中的存储: 字记为word,一个字两个字节,分为高位字节和低位字节。 5.几条汇编指令。 (1)mov 指令:传送指令,将寄存器中的值送到另个寄存器中或将值传送到寄存器中。 (2)add指令:相加指令,将寄存器的值与另一个寄存器的值或另一个值相加送入到寄存器中。 注意:在进行数据传送运算时,要注意指令的两个操作对象的位数是一致的。 6.物理地址: 每一个内存单元存在的唯一地址。 8086CPU: (1)16位机:运算器一次最多处理16位的数据。 寄存器的最大宽度为16位。 寄存器和运算器之间的通路是16位。 (2)物理地址=段地址*16+偏移地址=基础地址+偏移地址。 7.段:

汇编语言程序设计第二章小结

喜你入骨 提交于 2020-01-02 06:17:19
一、通用寄存器:AX、BX、CX和DX。(均为16位,可存放2个字节)。都可以分为两个独立的8位寄存器。(eg:AH和AL,其中AL为低8位,AH为高8位。) 二、字在寄存器中的存储 1字节(byte)=8bit,1个字=2字节=高位字节+地位字节,分别对应存在高位寄存器和低位寄存器中。 三、汇编指令 注意:在写一条汇编指令或一个寄存器名称时不用区分大小写。 引入:mov和add 溢出问题:AH和AL是两个不相关到的寄存器,当操作AL中有进位时,AL不会向AH进位。 (eg: mov ax,00C5H add al,93H 执行前al中的数据为C5H,相加后得到158H,但是al是8位寄存器,只能放两位16进制的数据,所以最高位的1丢失。ax中的数据为:0058H。这里的丢失指的是进位值不能在8位寄存器中保存,但是并不是CPU真的丢弃这个进位值。 ) 进行数据的传送或运输时,两个操作对象的位数需要相同。 (eg:错误指令:mov al,20000 8位寄存器最大可以存放的值为255的数据) 四、物理地址 所有的内存单元构成的存储空间是一个一维的线性空间,每个内存空间在这个空间中都有的惟一的地址,成为物理地址。 五、16位结构的CPU 结构特性: 1、运算器一次最多可以处理16位的数据。 2、寄存器的最大宽度为16位。 3、寄存器和运算器之间的通路为16位。 六

【汇编语言与计算机系统结构笔记04】80x86计算机组织、保护模式、存储器、寄存器、计算机系统结构金字塔

痴心易碎 提交于 2019-12-30 20:13:04
本次笔记内容: 05.80x86计算机组织 文章目录 计算机系统 存储器 / 主存(main memory) 80x86处理器与保护模式 历史 8086 / 8088 微处理器 80186和80286微处理器 80286 CPU基本工作方式 32位80x86微处理器 80386微处理器 80x86的三种工作模式 32位微处理器的寄存器 保护模式下的80x86(段模式) 寄存器与处理器的比较 计算机体系结构金字塔 计算机系统 如上图,CPU与主存间,通过一个bridge(总线)相连。上图还是比较抽象的,当前,CPU的一个趋势是,集成程度越来越高。 CPU中,PC即当前指令的地址,ALU是arithmetic and logic unit即计算路径。目前Memory Control、集成显卡等已经集成到CPU中了。 现在即便集成度(晶体管)提升,但性能并没有提升。因为程序往往是串行的,并行性有限。 上图中,在代码被从Disk中load到主存中,被CPU处理,再把信息投入显示器。 存储器 / 主存(main memory) 存储单元的地址和内容: 存储器以字节(8 bit)为单位存储信息; 每个字节单元有一个地址,从0编号,顺序加1; 地址用二进制数表示(无符号整数,写成十六进制); 一个32位字要占用相继的四个字节,低位字节存入低地址,高位字节存入高地址; 机器以字对齐地址访问(读/写

CC2541蓝牙学习——串口_1

一笑奈何 提交于 2019-12-24 13:04:10
CC2541有两个串行通信接口,分别是USART0和USART1,它们能够分别运行于异步UART模式或者同步SPI模式。两个USART具体同样的功能,可以设置在单独的I/O引脚。 1.UART模式 UART模式提供异步串行接口,在UART模式中,有2种接口选择方式:2线接口和4线接口。 2线接口,使用RXD、TXD。 4线接口,使用RXD、TXD、RTS和CTS。 I/O外设引脚映射如下图所示: 根据上面的外设I/O引脚映射可知 : UART0对应的外部设置IO引脚关系为:位置1:P0_2----RX P0_3----TX 位置2:P1_4----RX P1_5----TX UART1对应的外部设置IO引脚关系为:位置1:P0_5----RX P0_4----TX 位置2:P1_7----RX P1_6----TX UART模式的操作有以下特点。 8位或者9位负载数据 奇校验、偶校验或者无奇偶校验 配置起始位和停止位电平 配置LSB(最低有效位)或MSB(最高有效位)首先传输 独立接收中断 独立收发DMA触发 奇偶校验和帧检验出错状态 UART模式提供全双工传送,也就是说可以同时收发数据,传送一个UART字节包括1个起始位,8个数据位,1个作为可选的第9位数据或者奇偶校验位,再加上1个或者2个停止位。

计算机三级嵌入式笔记

微笑、不失礼 提交于 2019-12-23 21:37:15
计算机三级嵌入式笔记 ARM汇编指令 LDR/STR LDR加载指令 LDR伪指令 LDR 的两种用法 ARM汇编指令 LDR/STR ARM是RISC结构,数据从内存到CPU之间的移动只能通过L/S指令来完成,也就是ldr/str指令。 若想把数据从内存中某处读取到寄存器中,只能使用ldr: ldr r0 , 0x12345678 把0x12345678这个地址中的值存放到r0中 mov不能实现这个功 能,mov只能在寄存器之间移动数据,或者把立即数移动到寄存器中 还有一个就是ldr伪指令,虽然ldr伪指令和ARM的ldr指令很像,但是作用不太一样。ldr伪指令可以在立即数前加上=,以表示把一个值(一般是一个地址)写到某寄存器中 ldr r0 , = 0x12345678 把0x12345678这个值写到r0中,所以,ldr伪指令和 mov是比较相似的。只不过mov指令限制了立即数的长度为8位,也就是不能超过512。而ldr伪指令没有这个限制。如果使用ldr伪指令时,后面跟的 立即数没有超过8位,那么在实际汇编的时候该ldr伪指令是被转换为mov指令的。 LDR加载指令 LDR指令的格式为: LDR{条件} 目的寄存器,<存储器地址> LDR指令用亍从存储器中将一个32位的字数据传送到目的寄存器中。该指令通常用亍从存储器中读取32位的字数据到通用寄存器,然后对数据迕行处理

8086寻址方式

こ雲淡風輕ζ 提交于 2019-12-22 00:00:32
CPU寄存器 8086 CPU 中寄存器总共为 14 个,且均为 16 位 。 即 AX,BX,CX,DX,SP,BP,SI,DI,IP,FLAG,CS,DS,SS,ES 共 14 个。 而这 14 个寄存器按照一定方式又分为了通用寄存器,控制寄存器和段寄存器。 通用寄存器: AX,BX,CX,DX 称作为数据寄存器: AX (Accumulator):累加寄存器,也称之为累加器; BX (Base):基地址寄存器; CX (Count):计数器寄存器; DX (Data):数据寄存器; 可以分为两个独立的 8 位的 AH(BH, CH, DH) 和 AL(BL, CL, DL) 寄存器 SP 和 BP 又称作为指针寄存器: SP (Stack Pointer):堆栈指针寄存器; BP (Base Pointer):基指针寄存器; SI 和 DI 又称作为变址寄存器: SI (Source Index):源变址寄存器; DI (Destination Index):目的变址寄存器; 控制寄存器: IP (Instruction Pointer):指令指针寄存器; FLAG:标志寄存器; 段寄存器: CS (Code Segment):代码段寄存器; DS (Data Segment):数据段寄存器; SS (Stack Segment):堆栈段寄存器; ES (Extra