标志寄存器

TMS320F28377学习笔记——SCI串行通信接口

淺唱寂寞╮ 提交于 2019-11-29 23:43:40
本章介绍串行通信接口(SCI)模块的功能和操作。 SCI是一种双线异步串行端口,通常称为UART。 SCI模块支持CPU和使用标准非归零(NRZ)格式的其他异步外设之间的数字通信。 SCI接收器和发送器每个都有一个16级深FIFO,用于减少服务开销,每个都有自己独立的使能和中断位。 两者都可以独立操作以进行半双工通信,或同时进行全双工通信。 为了指定数据完整性,SCI检查接收到的数据是否存在中断检测,奇偶校验,溢出和帧错误。 比特率可通过16位波特选择寄存器编程为不同的速度。 SCI模块的功能包括: •两个外部引脚: SCITXD:SCI发送输出引脚 SCIRXD:SCI接收输入引脚 如果不用于SCI,则两个引脚都可以用作GPIO。 •波特率可编程为64K不同速率 •数据字格式 一个开始位 数据字长度可编程为1至8位 可选偶数/奇数/无奇偶校验位 一个或两个停止位 •四个错误检测标志:奇偶校验,溢出,成帧和​​中断检测 •两种唤醒多处理器模式:空闲线和地址位 •半双工或全双工操作 •双缓冲接收和发送功能 •发送器和接收器操作可以通过具有状态标志的中断驱动或轮询算法来完成。 •发送器和接收器中断的独立使能位(BRKDT除外) •NRZ(不归零)格式 •13个SCI模块控制寄存器位于控制寄存器帧中,从地址7050h开始 该模块中的所有寄存器都是8位寄存器,连接到外设帧2.当访问寄存器时

2.5 习题

你离开我真会死。 提交于 2019-11-28 11:21:37
题2.1 8086/8088 通用寄存器的通用性表现在何处?8个通用寄存器各自有何专门的用途?哪些寄存器可作为存储器寻址方式的指针寄存器? 答:8086、8088通用寄存器既可用存储数据,也可用于存放运算的中间值、运算结果。8个通用寄存器的专门用途如下:   AX:字乘法、字除法、字I/O、累加器   AL:字节乘法、字节除法、字节I/0、十进制算术运算   AH:字节乘法、字节除法   BX: 存储器指针   CX:串操作、循环控制中的计数器   CL: 移位计数器   DX:字乘法、字除法、间接I/0   SI: 存储器指针(串操作源指针)   DI:存储器指针(串操作目的指针)   BP:存储器指针(默认为堆栈段)   SP:指令指针 可作为存储器寻址方式指针寄存器为:BX、SI、DI、BP 题2.2 从程序员的角度看,8086/8088有多少个可访问的16位寄存器?有多少个可访问的8位寄存器? 答:AX,BX,CX,DX,SI,DI,BP,SP,DS,CS,ES,SS,IP,FLAG。共14个16位寄存器。AH,AL,BH,BL,CH,CL,DH,DL共8个8位寄存器。 题2.3 寄存器AX与寄存器AH和AL的关系如何?请写出如下程序片段中每条指令执行后寄存器AX的内容: MOV AX,1234H AX=1234H MOV AL,98H    AX=1298H MOV AH

EFLAGS寄存器(标志寄存器)

為{幸葍}努か 提交于 2019-11-28 06:37:41
  由于最近公司项目到了收尾阶段,一直说要写博的我耽搁了好久,因为近期一直加班,回来后我也有自己的东西要去学,博客就耽搁了!   我还是想废话说一点,也不算吐槽,因为上阵子有个项目计算文件大小的例子,跟公司弄java的聊了一下,我说大小的判断为什么要用数字,而不去用移位运算来代替呢,移位不更加客观,可阅读吗?1 << 30位代表1GB,1 << 20代表1MB,1 << 10代表1KB,然后同事就说没必要,有API可以调用直接计算出文件的大小,话题到这,我就没接着讲了。诚然,高级语言API的调用极大便利了程序开发效率,另一方面我也觉得人像一个机器一样在那干活,没啥意思。本文讲述的EFLAGS寄存器(标志寄存器)是X86的内容,如果读者您觉得没必要或者也是认为API调用更加方便,那么我觉得您没有接着往下阅读的必要了。   既然被称作一声IT工程师,我觉得我们有必要去敬重一下自己的这个职位,或许是我个人原因吧,我始终觉得拿着计算器算3 × 3 = 9(举例而已),而不知道 3 × 3为什么等于9,就像API的调用,不知道事物的本质,很显然,大家都会知道 3 × 3是3个3相加,为了便于计算,人们发明了“×”(乘法)。编程犹如同数学,底子不好就注定上层质量,发展前景定然会受限。例子举得不好,废话也不多说了,知之者知之!!!   另外,这篇文章不是从0开始的

汇编基础知识

邮差的信 提交于 2019-11-27 23:46:34
************************************************************************************************** 寄存器 ************************************************************************************************** 1. 通用寄存器   通用寄存器包括了8个16/32位的寄存器:AX/EAX、BX/EBX、CX/ECX、DX/EDX、SP/ESP、BP/EBP、DI/EDI及SI/ESI。其中AX/EAX、BX/EBX、CX/ECX、DX/EDX在一般情况下作为通用的数据寄存器,用来暂时存放计算过程中所用到的操作数、结果或其他信息。它们还可分为两个独立的8位寄存器使用,命名为AL、AH、BL、BH、CL、CH、DL和DH。这4个通用数据寄存器除通用功能外,还有如下专门用途:   AX/EAX作为累加器用,所以它是算术运算的主要寄存器。在乘除指令中指定用来存放操作数。另外,所有的I/O指令都使用AX或AL与外部设备传送信息。   BX/EBX在计算存储器地址时,可作为基址寄存器使用。   CX/ECX常用来保存计数值,如在移位指令、循环指令和串处理指令中用作隐含的计数器。DX在作双字长运算时

Intel 80386 CPU

偶尔善良 提交于 2019-11-26 19:20:50
一、80386 概述 80386处理器被广泛应用在1980年代中期到1990年代中期的IBM PC相容机中。这些PC机称为「80386电脑」或「386电脑」,有时也简称「80386」或「386」。80386的广泛应用,将PC机从 16位 时代带入了 32位 时代。80386的强大运算能力也使PC机的应用领域得到巨大扩展,商业办公、科学计算、工程设计、多媒体处理等应用得到迅速发展。它的数据总线和地址总线都是32位,直接寻址的内存空间4GB,虚拟地址空间为64TB。芯片上集成了27.5万个晶体管,主频16-33MHz。它是X86第一个真正的32位CPU,它能提供真正的多任务处理和建立虚拟系统的能力。 二、80386的引脚及功能 80386 DX有132根引脚,采用PGA(Pin Grid Array,引脚网格阵列)封装,采用这种封装工艺单根引脚所占用的面积较双列直插时小,因此引脚数目可以多一些,不必再采用引脚复用技术。因此,在80386中数据线和地址线是分开设置的,控制信号和状态信号也不再复用引脚。其中34 条地址线(A31~A2、BE3~BE0),32 条数据线(D31~D0),3 条中断线,1条时钟线,13 条控制线,20 条电源线VCC,21条地线VSS,还有8 条为空。 与8086/8088 相比,需要说明以下几点: 1)时钟( CLK2): 80386