x86标志寄存器(PSW)
汇编跳转指令
操作码
伪码指令
含义
EBcb
JMP rel8
相对短跳转(8位),使rel8处的代码位下一条指令
E9cw
JMP rel16
相对跳转(16位),使rel16处的代码位下一条指令
FF/4
JMP r/m16
绝对跳转(16位),下一指令地址在r/m16中给出
FF/4
JMP r/m32
绝对跳转(32位),下一指令地址在r/m32中给出
0F 8Dcw/cd
JGE rel16/32
大于等于
near
(SF=OF)
0F 8Ccw/cd
JL rel16/32
小于
near
(SF<>OF)
0F 8Ecw/cd
JLE rel16/32
小于等于
near
(ZF=1 or SF<>OF)
0F 86cw/cd
JNA rel16/32
不大于
near
(CF=1 or ZF=1)
0F 85cw/cd
JNZ rel16/32
非零(不等于)
near
(ZF=0)
0F 80cw/cd
JO rel16/32
溢出
near
(OF=1)
0F 8Acw/cd
JP rel16/32
偶数
near
(PF=1)
0F 8Acw/cd
JPE rel16/32
偶数
near
(PF=1)
0F 8Bcw/cd
JPO rel16/32
0F 8Fcw/cd
JNLE rel16/32
不小于等于
near
02 微处理器体系与结构
三、8086/8088的存储器组织
(一)、存储器结构 (二)、存储器的分段结构和物理地址的形成 (三)、信息分段存储与段寄存器
(一)、存储器结构
存储单元的地址和内容 存储器位编号: 8088字长16位,由二个字节组成,位编号如下:
高位字节 MSB(8~15位) 位)
标志: 运算结果最高位为1, SF=1 ; 运算结果本身不为0, ZF=0 ; 最高位向前无进位, CF=0 次高位向最高位产生进位,而最高位向前没有进位, OF=1 ; 结果低8位含偶数个1, PF=1 ; 第三位向第四位有进位, AF=1 。 在绝大多数情况下,一次运算后并不影响所有标志, 程序也并不需要对所有的标志作全面的关注。 一般只是在某些操作后,对其中某个标志进行检测。
(一)、总线接口单元BIU (Bus Interface Unit)(cont.)
指令队列
8086 的指令队列为6个字节, 8088 的指令队列为4个字节。
不论是8086还是8088都会在执行指令的同时从内存中取下 一条或几条指令,取来的指令放在指令队列中,使 BIU 具有预取指令的功能,是一种先进先出(FIFO)的数据结 构。 指令执行顺序
组成:
4个通用寄存器:AX、BX、CX、DX 4个专用寄存器:BP、SP、SI、DI 标志寄存器(PSW):
9个标志位,其中6个条件标志位用于存放结果状态,
16 位加法器,用于对寄存器和指令操作数进行算术或逻辑运算,
算术逻辑单元:
EU 控制系统:
接受从总线接口单元的指令队列中取来的指令代码,对其译码和向 EU 内 各有关部分发出时序命令信号,协调执行指令规定的操作。
汇编语言程序设计第3章
3.;<<
3.1 寄存器体系结构
1. 标志寄存器(FLAGS) 标志寄存器( ) 标志寄存器又称为程序状态字寄存器( 标志寄存器又称为程序状态字寄存器(PSW,Program , Status Word),它用来标识当前处理器的运行状态。 ),它用来标识当前处理器的运行状态 ),它用来标识当前处理器的运行状态。 (1)条件标志 ) (2)控制标志 ) 2. 指令指针寄存器
3.1.3 专用寄存器
北京科海电子出版社 · <<<
3.2 存储器的管理模式
1. 存储单元 计算机是用二进制数表示信息的, 计算机是用二进制数表示信息的,信息 的基本单位是一个二进制位, 位二进制数组 的基本单位是一个二进制位,8位二进制数组 成一个字节, 成一个字节,内存储器按字节组织排列成一 个个存储单元,其位编号如图所示。 个个存储单元,其位编号如图所示。 2. 存储单元的地址 3. 存储单元的内容
北京科海电子出版社 · <<<
3.1 寄存器体系结构
通用寄存器可用于传送和暂存数据,也可参与算术逻辑运算, 通用寄存器可用于传送和暂存数据,也可参与算术逻辑运算,并保存 运算结果。如图所示。 运算结果。如图所示。 从图中看到8个 位的通用寄存 从图中看到 个32位的通用寄存 器,分别为EAX、EBX、ECX、 分别为 、 、 、 EDX、ESI、EDI、EBP和ESP。 、 、 、 和 。 这些寄存器的低16位可直接作为 这些寄存器的低 位可直接作为
3.2.2 存储器的分段
北京科海电子出版社 · <<<
解释psw=8fh的具体含义
1. 介绍PSW=8FH的背景和起源PSW=8FH是计算机领域的术语,源自于X86架构的CPU。
在这个术语中,PSW代表程序状态字(Program Status Word),而8FH则代表一个十六进制的数值。
在讨论PSW=8FH的具体含义之前,我们需要先了解PSW在计算机系统中的作用以及8FH的数值所代表的含义。
2. PSW在计算机系统中的作用程序状态字(PSW)是一种用来存储程序状态信息的寄存器,它记录了CPU在执行程序时的各种状态和标志位,帮助CPU进行条件判断,控制程序执行流程。
在X86架构的CPU中,PSW通常包括零标志、进位标志、符号标志、溢出标志等,这些标志位可以影响程序的运行结果。
3. 8FH的含义在十六进制表示中,8FH代表的是一个8位的二进制数值,即xxx。
在计算机系统中,这个数值通常用来表示各种状态信息和标志位。
具体到PSW=8FH,这个数值代表了程序状态字中各种标志位的具体配置,从而影响了程序的执行结果。
4. PSW=8FH的具体含义PSW=8FH代表了一种特定的程序状态字配置,它可能在特定的计算机系统或特定的应用场景中产生特定的效果。
具体来说,PSW=8FH可能代表了特定的条件判断结果、特定的标志位状态,或者特定的程序执行状态。
5. PSW=8FH的使用场景根据X86架构的CPU规范,PSW=8FH可能被用于特定的指令集、特定的系统调用或特定的应用程序中。
在一些特定的条件判断、逻辑运算或算术运算中,PSW=8FH可能会被设置或需要被检查,以实现特定的程序控制流程或逻辑执行。
6. 总结在计算机系统中,PSW=8FH代表了一种特定的程序状态字配置,它通过设置各种标志位的状态来影响程序的执行结果。
在X86架构的CPU中,PSW=8FH可能会在特定的条件判断、逻辑运算或算术运算中发挥作用,帮助程序实现预期的逻辑控制或执行流程。
对于计算机领域的专业人士来说,理解并掌握PSW=8FH的具体含义和使用场景是极为重要的。
PSW
PSW(状态字寄存器)
D7 D6 D5 D4 D3 D2 D1 D0
CY:进位标志(如果最高位有进位或者借位,则该位为1,否则为0.)
AC:辅助进位标志,又称半进位标志。
它指两个八位运算第四位是否有进位。
F0:有用户使用的一个状态标志位,可用软件使它置1或清零,也可由软件来测试它以控制程序的流向。
RS1,RS0 :四组工作寄存器区选择控制位,在汇编语言中这两位用来选择四组工作寄存器中的哪一组为当前工作寄存区。
OV:溢出标志位,反应带符号数的运算是否溢出,有溢出为1,否则为0.
P:奇偶标志位,假如运算结果又偶数个1,则P为0,否则P为1.。
psw是什么
psw 是什么
psw 的定义
PSW 即程序状态字(也叫程序状态寄存器)Program Status Word,可用于OS 在管态(系统态)和目态(用户态)之间的转换。
程序状态寄存器PSW 是计算机系统的核心部件运算器的一部分,PSW 用来存放两类信息:一类是体现当前指令执行结果的各种状态信息,称
为状态标志,如有无借位进位(CY 位)、有无溢出(OF 位)、结果正负(SF 位)、结果是否为零(ZF 位)、奇偶标志位(PF 位)等;另一类是存放控制
信息,称为控制状态,如允许中断(IF 位),跟踪标志(TF 位),方向标志(DF)等。
有些机器中将PSW 称为标志寄存器FR(Flag Register)。
在8086/8088CPU 中,PSW 是一个16 位寄存器,用于寄存单签指令执行后的某些状态,即反映指令执行结果的一些特征信息。
在debug 程序
中,可以使用R 命令来查看PSW 的值,除了TF 没有显示之外,其它8 个标志的值显示方式如下:。
汇编指令符号大全
80X86 汇编指令符号大全+、-、*、/∶算术运算符。
&∶宏处理操作符。
宏扩展时不识别符号和字符串中的形式参数,如果在形式参数前面加上一个& 记号,宏汇编程序就能够用实在参数代替这个形式参数了。
$∶地址计数器的值——记录正在被汇编程序翻译的语句地址。
每个段均分配一个计数器,段内定义的所有标号和变量的偏移地址就是当前汇编地址计数器的值。
?∶操作数。
在数据定义语句中,操作数用?,其作用是分配并保留存储空间,但不存入确定的数据。
=∶等号伪指令——符号定义。
对符号进行定义和赋值,功能与EQU相似,但允许(重复)再定义。
:∶修改属性运算符(操作符)——段操作符。
用来临时给变量、标号或地址表达式指定一个段属性(不用缺省的段寄存器),自动生成一个“跨段前缀字节”。
注意,段寄存器CS和ES 不能被跨越,堆栈操作时也不能跨越SS。
;∶注释符号。
%∶特殊宏操作符,用来将其后的表达式(通常是符号常数,不能是变量名和寄存器名)转换成它所代表的数值,并将此数值的ASCII码嵌入到宏扩展中。
( )∶1.运算符——用来改变运算符的优先级别。
2.教材符号,表示括号内存储单元(或寄存器)的内容。
< >∶宏调用时用来将带间隔符(如空格,逗号等)的字符串(作为实参)括起来。
[ ]∶1.运算符。
方括号括起来的数是数组变量的下标或地址表达式。
带方括号的地址表达式必须遵循下列原则,①只有BX、BP、SI、DI这四个寄存器可在方括号内出现;②BX或BP 可单独出现在各方括号中,也可以与常数、SI或DI一起出现在方括号内,但不允许BX和BP出现在同一个方括号内;③SI和DI可以单独出现在各方括号内,也可以与常数、BP或BX一起出现在方括号内,但不允许SI和DI出现在同一个方括号内;④一个方括号内包含多个寄存器时,它们只能作加法运算;⑤若方括号内包含基址指针BP,则隐含使用堆栈段寄存器SS提供段基址,否则均隐含使用数据段寄存器DS提供段基址。
汇编语言第2章80x86计算机组织
控制标志位
• 控制标志位 :DF 方向标志,用于串处理指令处理
▪ DF位为1时,每次操作后使变址寄存器SI和 DI减量,使串处理从高地址向低地址方向处 理:
▪ 当DF位为0时,则使SI和DI增量,使串处理 从低地址向高地址方向处理:
系统标志位
• IF:中断标志。 当IF=1时,允许中断; IF=0时关闭中断
数据的宽度 • 地址总线宽度:用以确定可访问的存储器的最
大范围
地址总线宽度
• 10位:210=1024单元,1K • 20位:220=1024* 210单元=1024K,1M • 24位:224=16*1M,16M • 30位:230=1024M,1G • 32位:232=4G,即4GB
二、一些名词术语(2)
• TF:陷井标志(跟踪标志)。用于单步方式操作 • IOPL:I/O特权级。控制对I/O地址空间访问
段寄存器
• 8086/8088、80286:四个段寄存器 ▪ 代码段CS,数据段DS,堆栈段SS,附加段ES
• 80386及后继机型:六个段寄存器 ▪ 代码段CS,数据段DS,堆栈段SS,附加段ES、 FS、GS---都是16位
• ZF:零标志。运算结果为0,置1;否则置0。 • CF:进位标志。记录从最高有效位产生的进位值。
最高有效位有进位时置1,否则置0。 • AF:辅助进位标志。记录运算时第3位产生的进位
值。如第3位有进位时置1,否则置0。 • PF:奇偶标志。当结果操作数中1的个数为偶数时置
1,否则置0。
标志符号 举例
段中的某一存储单元的地址 4. SI、DI一般与DS联用:
在串处理指令中,SI和DS联用,DI和ES联用
8086系统的堆栈
• 是存储器中的特殊区域 – 在堆栈段内,“FILO” – SP始终指向栈顶,总是字操作,指示栈顶的 偏移地址; – BP可作为堆栈区中的一个基地址以便访问 堆栈中的其他信息
第4章 INTEL80X86系列微处理器习题参考答案
第4章Intel80X86系列微处理器习题解答4.1 8086/8088内部寄存器有哪些?哪些属于通用寄存器?哪些用于存放段地址?标志寄存器的含义是什么?答:8086/8088内部有14个16位的寄存器。
8个通用寄存器AX、BX、CX、DX、SP、BP、SI、DI。
4个16位的段寄存器CS、DS、SS、ES,用于存放段地址。
标志寄存器FLAGS用于存放指令执行结果的特征和CPU 工作方式,其内容通常称为处理器状态字PSW。
4.2 对于8086/8088CPU,确定以下运算的结果与标志位。
(1)5439H+456AH (2)2345H+5219H (3)54E3H-27A0H(4)3881H+3597H (5)5432H-6543H (6)9876H+1234H略。
4.3 8086/8088为什么要对存储器采用分段管理?一个段最多包含多少存储单元?答:8086/8088内部与地址有关的寄存器都是16位的,只能处理16位地址,对内存的直接寻址范围最大只能达64KB。
为了实现对1MB单元的寻址,8086/8088系统采用了存储器分段技术。
一个段最多包含64K 个存储单元。
4.4 8086/8088CPU内部共有多少个段?分别称为什么段?段地址存放在哪些寄存器中?答:8086/8088 CPU内部共有4个段。
分别称为代码段、数据段、堆栈段和附加段。
段地址存放在4个16位的段寄存器,CS代码段寄存器、DS数据段寄存器、SS堆栈段寄存器、ES附加段寄存器中。
4.5 简述物理地址、逻辑地址、段基地址和偏移量的含义及其相互关系。
答:物理地址:信息在存储器中实际存放的地址,它是CPU访问存储器时实际输出的地址。
逻辑地址:编程时所使用的地址,由段基地址和偏移量两部分构成。
段基地址(段地址或段基址):段的起始地址的高16位。
偏移量(偏移地址):所访问的存储单元距段的起始地址之间的字节距离。
给定段基地址和偏移量,就可以在存储器中寻址所访问的存储单元。
3-1、80X86寻址方式
指明CPU要执行什么样的操作。 要执行什么样的操作。 指明 要执行什么样的操作 是一条指令必不可少的部分,用助记符表示。 是一条指令必不可少的部分,用助记符表示。
数据传送 算术运算 逻辑运算 串操作 控制转移 处理机控制
按功能 指令分六类
(2) 操作数 指明参与操作的数据或数据所在的地方。 指明参与操作的数据或数据所在的地方。
例1
MOV
AX , 2056H
执行后: 执行后:(AX)=2056H
例2
MOV
BL , AH
执行前: 执行前:(BL) = ??H, (AH) = 78H 执行后: 执行后:(BL) = 78H , (AH) = 78H
▲ 立即数寻址、寄存器寻址的操作数, 立即数寻址、寄存器寻址的操作数, 不用在取完指令后再到内存中取数。 不用在取完指令后再到内存中取数。 CPU 总线
寄存器组 AH AL BH BL CH CL DH DL SI DI BP SP AX BX CX DX DS ES SS CS IP 地 址 加 法 器
内存
地址总线AB 地 数据总线DB 址 译
、、、 指令1 指令 指令2 指令 指令3 指令 指令4 指令 、、、 数据1 数据 数据2 数据 数据3 数据 、、、
单操作数
指令中给出一个操作数。 指令中给出一个操作数。 有两种可能: 有两种可能: ▲有些操作只需要一个操作数 如 INC AL ; (AL) ← (AL)+ 1 ) )
▲有些操作将另一个操作数隐含在指令中 如 MUL BL ; (AX) ← (AL)×(BL) ) ) )
双操作数
指令中给出两个操作数。 指令中给出两个操作数。
内存 00H ….
若定义value 为字类型 : 若定义 则 MOV value , 0 是一个字操作。 value 是一个字操作。 00H 00H
汇编语言复习题(2)
汇编语⾔复习题(2)汇编语⾔复习题第2章8086CPU寄存器的结构及使⽤1.8086CPU由指令执⾏部件EU和总线接⼝部件BIU两部分组成。
其中EU的功能是控制和执⾏指令,主要由算术逻辑部件ALU、EU控制部件、8个16位寄存器和⼀个标志寄存器FLAGS组成。
BIU的功能是从存储器预取指令和数据,以及所有EU需要的总线操作,实现CPU与存储器和外设间信息传递。
BIU由指令队列、指令指针寄存器、段寄存器、地址加器组成。
2.Intel8086CPU共有14个16位寄存器,它们分别是通⽤寄存器8个即AX、BX、CX、DX、SP、BP、SI、DI,其中能⽤作寄存器间接寻址的寄存有BX、BP、SI和DI,控制寄存器2个即IP、PSW,段寄存器4个即DS、SS、CS和ES它们的含义分别是:其中在编程过程中程序的段基值由汇编程序装⼊的段寄存器是SS和CS,由编程者⽤汇编指令将段基值装⼊的段寄存器是DS 和ES,其具体指令是MOV AX,数据段段/附加数据段名,MOV DS/ES,AX,编程⼈员不能⽤指令去取其值或给其设置给定值的寄存器是IP,但是可以通过某些指令的执⾏⽽⾃动修改其内容,如JMP NEXT指令的功能是将⽬的地址的偏移量送⼊IP。
3.PSW是程序状态字寄存器⼜称为标志寄存器,⽤来反映微处理器在程序运⾏时的某些状态,其中的6个状态标志位分别是OF、SF、ZF、AF、PF和CF,反映了刚执⾏完算术或逻辑运算指令后的某些特征。
三个控制标志位是DF即⽅向标志、IF即中断标志位和TF陷阱标志。
如两个8位的⼆进制数相加其状态标志位中各标志的值是多少?10110101+10011011。
4.8086CPU数据总线16根地址总线是20根能访问的最⼤存储空间是1MB。
第3章存储器的分段1.在8086CPU中存储器的编址原则是按字节编址即每⼀个字节单元是⼀个存储器地址,在源程序中⽤常⽤⼗六进制数或符号来表⽰⼀个存储单元的地址。
8086标志寄存器
8086标志寄存器CPU内部的寄存器中,有⼀种特殊的寄存器(对于不同的机器,个数和结构都有可能不同)具有以下三个功能:⽤来存储某些相关指令的执⾏结果⽤来为CPU执⾏相关的指令提供⾏为依据⽤来控制CPU的相关⼯作⽅式这种特殊的寄存器在8086CPU中称为标志寄存器。
8086的标志寄存器有16位,其中存储的信息通常被称为程序状态字(PSW)。
标志寄存器与其他寄存器不⼀样,其他寄存器是⽤来放数据的,都是整个寄存器具有⼀个含义,⽽标志寄存器是按位起作⽤的。
8086中的标志寄存器的结构如下图所⽰:其中1、3、4、12、13、14、15位在8086中没有使⽤。
另外对于有确切含义的每⼀位,我们称为标志位ZF标志标志寄存器的第六位是ZF,零标志位。
他是记录相关指令执⾏后,其结果是否位零。
如果为零,那么zf=1,如果不为零,那么zf=0⽐如指令:mov ax, 1sub ax, 1执⾏后,ax的结果为0,所以zf=1再⽐如:mov ax, 2sub ax, 1执⾏后,ax的结果不为0,所以zf=0在这⾥,有⼀点需要注意:在8086的指令集中,有的指令的执⾏是影响标志位的,⽐如add、sub、mul、div、inc、or、and等,它们⼤都是运算指令(进⾏逻辑或算数运算);有的指令的执⾏对标志寄存器没有影响,⽐如mov、push、pop等,它们⼤都是传送指令。
PF标志标志寄存器的第⼆位是PF,奇偶标志位。
它记录相关指令执⾏后,其结果的所有bit位中1的个数是否位偶数。
如果是偶数,pf=1,如果位奇数,pf=0⽐如指令:mov al, 1add al, 10执⾏后,al为00001011B,其中有3个1,所以pf=0再⽐如:mov al, 1or al, 2执⾏后结果为00000011B,其中有2个1,所以pf=1SF标志标志寄存器的第七位是SF,符号标志位。
它记录相关指令执⾏后,其结果是否为负。
如果为负,sf=1,如果⾮负,sf=0这⾥要明确⼀点,在计算机中,通常⽤补码来表⽰有符号的数据,计算机中的⼀个数据既可以看作有符号数,也可以看作⽆符号数。
标志寄存器
大多数情况下,取指令所需的时间“消失”了(隐含
在上一指令的执行之中),大大减少等待取指令所需 的时间,提高了微处理器的利用率和整个系统的执行 速度。 BIU 和 EU 分开,取指和执行可以重迭,大大减少了 等待取指所需的时间,提高CPU的利用率。
12
8086 CPU内部结构
3、8086与8080的比较
运算寄存器 执行部分
AL BL CL DL
AX BX CX DX
16 位 CS DS SS ES IP
内部暂存器
输入/输出 控制电路
外部 总线
ALU
标志
控制电路
8位
1 2 3 4 5 6 指令队列 缓冲器
执行部件(EU)
总线接口部件(BIU)
7
8086 CPU内部结构
1、总线接口部件BIU
总线接口部件 BIU 同外部总线连接,为执行部 件 EU 完成全部的总线操作,并且计算、形成 20 位的 内存储器的物理地址。 组成: 4个段地址寄存器(CS、DS、ES、SS)
源变址寄存器SI(Source Index)
目的变址寄存器DI(Destination Index)
SP用来确定欲读写堆栈的地SI、DI用于变 址操作,存放变址地址。
17
8086 CPU 的编程结构
2、指令指针寄存器IP(Instruction Pointer) 指向当前需要取出的指令字节 IP指向的是指令地址的段内地址偏移量,又称 偏移地址(Offset Address)或有效地址EA (Effective Address)。
汇编语言与接口技术
教师:范新民
第二章
8086微处理器
2
第二章:8086微处理器
PSW状态字百度百科
PSW即程序状态字(有些教材也叫程序状态寄存器),Program Status Word
程序状态寄存器PSW是计算机系统的核心部件——控制器的一部分,PSW用来存放两类信息:
一类是体现当前指令执行结果的各种状态信息,称为状态标志,
如有无进位(CF位),有无溢出(OF位),
NV UP DI PL NZ NA PO NC依次表示OF DF IF SF ZF AF PF CF都为0.
PSW各位的定义如下:
Cy(PSW.7):即PSW的D7位,进位、借位标志。 进位、借位CY=1;否则CY=0.
AC(PSW.6):即PSW的D6位,辅助进位、借位标志。 当D3向D4有借位或进位时,AC=1;否则AC=0.
,即反映指令执行结果的一些特征信息。在debug程序中,可以使用R命令来查看PSW的值,
除了TF没有显示之外,其它8个标志的值显示方式如下:
标志名
设置 nv(清除) ov(溢出)
方向 dn(减) up(增)
中断Байду номын сангаас ei(启用) di(禁用)
F0(PSW.5及PSW.1):即PSW的D5位,用户标志位;
RS1及RS0(PSW.4及PSW.3):即PSW的D4、D3位, 寄存器组选择控制位;
OV(PSW.2):溢出标志。有溢出OV=1,否则OV=0;
F1(PSW·1):保留位,无定义;
P(PSW·0):奇偶校验标志位,由硬件置位或清0;存在ACC中的运算结果有奇数个1时P=1,否则P=0。
结果正负(SF位),结果是否为零(ZF位),
奇偶标志位(PF位)等;
另一类是存放控制信息,称为控制状态,
李伯成《微型计算机原理及应用》课后习题答案
李伯成《微机原理》习题第一章本章作业参考书目:①薛钧义主编《微型计算机原理与应用——Intel 80X86系列》机械工业出版社2002年2月第一版②陆一倩编《微型计算机原理及其应用(十六位微型机)》哈尔滨工业大学出版社1994年8月第四版③王永山等编《微型计算机原理与应用》西安电子科技大学出版社2000年9月1.1将下列二进制数转换成十进制数:X=10010110B=1*27+0*26+0*25+1*24+0*23+1*22+1*21 +0*21=128D+0D+0D+16D+0D+0D+4D+2D=150DX=101101100B=1*28+0*27+1*26+1*25+0*24+1*23+1*22+0*21+0*20=256D+0D+64D+32D+0D+16D+4D+0D=364DX=1101101B=1*26+1*25+0*24+1*23+1*22+0*21 +1*20=64D+32D+0D+8D+4D+0D+1D=109D1.2 将下列二进制小数转换成十进制数:(1)X=0.00111B=0*2-1+0*2-2+1*2-3+1*2-4+1*2-5=0D+0D+0.125D+0.0625D+0.03125D=0.21875D(2) X=0.11011B=1*2-1+1*2-2+0*2-3+1*2-4+1*2-5=0.5D+0.25D+0D+0.0625D+0.03125D=0.84375D(3) X=0.101101B=1*2-1+0*2-2+1*2-3+1*2-4+0*2-5+1*2-6=0.5D+0D+0.125D+0.0625D+0D+0.015625D=0.703125D1.3 将下列十进制整数转换成二进制数:(1)X=254D=11111110B(2)X=1039D=10000001111B(3)X=141D=10001101B1.4 将下列十进制小数转换成二进制数:(1)X=0.75D=0.11B(2) X=0.102 D=0.0001101B(3) X=0.6667D=0.101010101B1.5 将下列十进制数转换成二进制数(1) 100.25D= 0110 0100.01H(2) 680.75D= 0010 1010 1000.11B1.6 将下列二进制数转换成十进制数(1) X=1001101.1011B =77.6875D(2) X=111010.00101B= 58.15625D1.7 将下列二进制数转换成八进制数(1)X=101011101B=101’011’101B=535Q(2) X=1101111010010B=1’101’111’010’010B=15722Q(3) X=110B=6Q1.8 将下列八进制数转换成二进制数:(1)X=760Q=111'110'000B(2)X=32415Q=11'010'100'001'101B1.9 将下列二进制数转换成十六进制数:X=101 0101 1110 1101B= 5 5 E D HX= 1100110101'1001B= 11 0011 0101 1001B= 3 3 5 9HX= 1000110001B= 10 0011 0001 B= 2 3 1 H1.10 将下列十六进制数转换成二进制数:X= ABCH= 1010 1011 1100 BX=3A6F.FFH = 0011 1010 0110 1111.1111 1111BX= F1C3.4B =1111 0001 1100 0011 . 0100 1011B1.11 将下列二进制数转换成BCD码:(1) X= 1011011.101B= 1'011'011.101B= 91.625d=1001 0001.0110BCD(2) X=1010110.001B= 1’010’110.001 =126.1 BCD1.12 将下列十进制数转换成BCD码:(1)X=1024D=0001 0000 0010 0100 BCD(2)X=632 = 0110 0011 0010 BCD(3)X= 103 = 0001 0000 0011 BCD1.13 写出下列字符的ASCI I码:A 41H 65D 0100 0001B9 39H 47D* 2AH 42D= 3DH 45D!21H 33D1.14 若加上偶校验码,下列字符的ASCII码是什么?字符原码加上偶校验码之后B 42H,0100 0010B 42H,0100 0010B4 34H,0011 0100B B4H,1011 0100B7 37H,0011 0111B B7H,1011 0111B= 3DH,0011 1101B BDH,1011 1101B!21H,0010 0001B 21H,0010 0001B?3FH 0011 1111B 3FH,0011 1111B1.15 加上奇校验,上面的结果如何?字符原码加上奇校验码之后B 42H,0100 0010B C2H,1100 0010B4 34H,0011 0100B 34H,0011 0100B7 37H,0011 0111B 37H,0011 0111B= 3DH,0011 1101B 3DH,0011 1101B!21H,0010 0001B A1H,1010 0001B?3FH 0011 1111B BFH,1011 1111B1.16 计算下式:(1)[‘B’/2+ABH-11011001B]*0.0101BCD=(42H/2+ABH-D9H)*0.21 BCD = = F3H*0.21 BCD =(-DH) *0.21 BCD= -2.73D(2) 3CH –[(84D)/(16Q)+’8’/8D]= 60D-[84D/14D+(56/8)]=60D-[13]D==47D1.17 对下列十进制数,用八位二进制数写出其原码、反码和补码:(正数的反码与原码相同,负数的反码除符号位之外其余各位按位取反。
51单片机常用寄存器详解
P0 = 0x80;P1 = 0x90;P2 = 0xA0;P3 = 0xB0;PSW = 0xD0;PSW寄存器,全称——程序状态字标志寄存器,是一个8位寄存器。
该寄存器用来存放运算结果的一些特征,如有无进位、借位等。
使用汇编编程是PSW寄存器很有用,但在C语言编程时,编译器会自动控制该寄存器,很少人为操作,仅作了解即可。
D7 D6 D5 D4 D3 D2 D1 D0CY AC F0 RS1 RS0 OV —— P①CY——进位标志位,他表示运算是否有进位(或借位)。
如果操作结果在最高位有进位(加法)或者借位(减法),则该位为1,否则为0.②AC——辅助进位标志,又称半进位标志,它指两个8位数运算低四位是否有半进位,即低四位相加(或相减)是否进位(或借位),如有AC为1,否则为0.③F0——由用户使用的一个状态标志位,可用软件来使它置1或清0,也可由软件来测试它,以控制程序的流向。
④RS1、RS0——四组工作寄存器选择控制位,在汇编语言中这两位用来选择4组工作寄存器区中的哪一组为当前工作寄存区。
⑤OV——溢出标志位,反应带符号数的运算结果是否有溢出。
有溢出时,此位为1,否则为0.⑥P——奇偶标志位,反应累加器ACC内容的奇偶性,如果ACC内中的运算结果有偶数个1,则P为0,否则为1.ACC = 0xE0;B = 0xF0;SP = 0x81;DPL = 0x82;DPH = 0x83;PCON = 0x87;电源管理寄存器,不能位寻址。
PCON用来管理单片机的电源部分,包括上电复位检测、掉电模式、空闲模式等。
单片机复位时PCON全部被清0.为序号D7 D6 D5 D4 D3 D2 D1 D0位符号SMOD SMOD0 LVDF P0F GF1 GF0 PD IDL①SMOD——该位与串口通信波特率有关。
SMOD=0:串口方式为1、2、3时,波特率正常。
SMOD=1:串口方式为1、2、3时,波特率加倍。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
AF
4 3
PF
2 1
CF
0
IOPL: I/O特权级 : 特权级 NT: 嵌套任务标志 : RF: 重新启动标志 : AC: 对准检查方式位 : ID: 标识标志 :
VIP:虚拟中断未决标志 : VIF:虚拟中断标志 : VM:虚拟 :虚拟8086模式位 模式位
保护模式下的80x86 保护模式下的
支持多任务处理功能 支持虚拟存储器特性
1993年Intel公司又推出了Pentium微处理器。 1996年特尔推出采用了MMX(多媒体增强指令集)技术 的Pentium处理器。 1997年英特尔推出Pentium Ⅱ处理器,集成了750万个 晶体管。英特尔发布StrataFlash存储器,实现在单个 存储单元中存储多位数据,大幅增加闪存容量。 1999年英特尔发布Pentium Ⅲ处理器,内含900万个晶体 管。
2000年无线应用成为发展重点,英特尔发布Xscale微架 构体系和数款无线网卡。英特尔发布Pentium 4处理器, 集成了4200万个晶体管。 2001年,Intel公司推出了基于服务器的IA架构的64位 微处理器Itanium。
2003年AMD公司推出首款64位处理器,这是一款采用 x86兼容架构的64位CPU,它最大的特点 就是在支持64 位数据寻址的同时,向下兼容32位数据寻址,妥善解 决了CPU从32位到64位的过渡和兼容问题,从而掀起了 桌面处理器从32位向64位过 渡的技术革命。 2004年,Intel发布了其首款64位Xeon处理器,它采用 EM64T(Intel Extended Memory 64 Technology)技术, 同时支持32位和64位运算,在运行64位程序时采用64 位工作方式,而在处理32位运算时依然是IA32(即x86) 工作 结构,这实际上也一起被称为x86-64架构。
30
80386是1985年研制出的一个32位微处理器,内部及外 部数据总线均为32位,地址线也为32位,因此它可处 理4G(232)字节的物理存储空间。80386为每个任务提 供的虚拟存储空间增加到64T(246)字节。 1989年Intel公司又研制出新一代的微处理器80486, 80486芯片内除了有一个与80386相同结构的主处理器 外,还集成了一个浮点处理部件FPU以及一个8K字节的 高速缓冲存储器(cache),使80486的计算速度和总 体性能比80386有了明显的提高。
2.从8086到8088 8086到 8086的内部寄存器、功能部件、数据通路以及对外的 数据总线均为16位宽度,它的出现是计算机技术上一 个很大的进步。但是,当时已有的微处理器外围配套 芯片的数据总线都是8位的,为了使用这些8位的外围 芯片组成系统,Intel公司又推出了8088微处理器。 8088的内部结构与8086基本相同,也提供16位的处理 能力,但对外的数据总线设计成8位。 1981年IBM公司选择8088微处理器作为核心来设计IBM PC微计算机系统,推向市场后获得了巨大的成功,为 后来的80x86系列微处理器成为主流微计算机的处理核 心打下了基础。
3.80286、80386到Pentium微处理器 80286、80386到Pentium微处理器 由于用户对PC机性能的要求迅速提高,Intel公司在 1982年推出了80286微处理器,它仍然是16位结构。 80286的内部及外部数据总线都是16位的,但它的地址 线是24位的,可寻址16M字节的存储空间。80286有两 种工作方式,即实模式和保护模式。实模式与8086工 作方式相同,但速度比8086快。保护模式除了仍具有 16M字节的存储器物理地址空间外,她还能为每个任务 提供1G(2 )字节的虚拟存储器地址空间。保护方式 把操作系统及各任务所分配到的地址空间隔离开,避 免程序之间的相互干扰,保证系统在多任务环境下正 常工作。
80486
AC VM RF NT IOPL OF DF IF TF SF ZF AF PF CF
Pentium
ID VIP VIF AC VM RF
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15
NT IOPL OF DF IF TF SF ZF
14 13 12 11 10 9 8 7 6 5
例:ADD
JO / JC ERROR ?
寄存器与存储器的比较: 寄存器与存储器的比较:
寄 存 器
在CPU内部 内部 访问速度快 容量小, 容量小,成本高 用名字表示 没有地址
存 储 器
在CPU外部 外部 访问速度慢 容量大, 容量大,成本低 用地址表示 地址可用各种方式形成
4. 外部设备
外部设备与主机( CPU 和存储器)的通信是通过外设 接口(Interface)进行的,每个接口包括一组寄存器。 数据寄存器:存放外设和主机间传送的数据 状态寄存器:保存外设或接口的状态信息 命令寄存器:保存CPU发给外设或接口的控制命令 外设中每个寄存器有一个端口(Port)地址,构成一个 独立于内存的 I / O 地址空间:0000H ~ FFFFH
寄 存 器
80x86的程序可见寄存器组 的程序可见寄存器组
通用寄存器 专用寄存器 段寄存器
8086/8088
OF DF IF TF SF ZF AF PF CF
80x86的标志寄存器 的标志寄存器
NT IOPL OF DF IF TF SF ZF AF
80286
PF CF
80386
VM RF NT IOPL OF DF IF TF SF ZF AF PF CF
存 储 器
段基地址32
所选存储单元
所选段
逻辑地址
选择器16 偏移地址 32
描 述 符64
描述符表
保护模式下的存储器寻址
当前主流CPU的发展过程: 当前主流CPU的发展过程 CPU的发展过程
1.从8080/8085到8086 8080/8085到 8086是1978年Intel公司推出的16位微处理器。与前一 代8位微处理器8080/8085相比,8086有如下进步: (1)8086有16位数据总线,处理器与外部传送数据时, 一次可传送16位二进制数,而8080/8085一次只能传送 8位。 (2)8086的寻址空间从8080/8085的64K字节提高到1M 字节。 (3)8086采用了流水线技术,而8080/8085是非流水 线结构。在一个具有流水线结构处理器的系统中,可 以实现处理器的内部操作与存储器或I/O接口之间的数 据传送操作重叠进行,从而提高了处理器的性能。
2005年4月,Intel发布首款基于服务器的双核CPU 。 2005年5月,AMD发布首款基于服务器的双核CPU 。 2006年11月,Intel发布了首款四核心处理器Core 2 Quad Extreme 670 。 2007年9月,AMD发布了首款四核处理器巴塞罗纳 (Barcelona)
80x86的寄存器结构 的寄存器结构
31
EAX EBX ECX EDX ESP EBP ESI EDI EIP EFLAGS
16 15
AH BH CH DH
8 7
AX BX CX DX SP BP SI DI IP FLAGS CS DS SS ES FS GS AL BL CL DL
0
8086 / 8088 / 80286
64位处理器是指这个位数指的是CPU GPRs(GeneralPurpose Registers,通用寄存器)的数据宽度为64位, 64位指令集就是运行64位数据的指令,也就是说处理器 一次可以运行64bit数据。 微处理器要从单核转向多核,可以降低能耗,提高运算 速度。
问题: 1、了解当今主流的微处理器芯片EM64T、x86的技术; 2、较详细说采用多核技术的必要性。
标志寄存器 ( FLAGS / PSW )
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
OF DF IF TF SF ZF
AF
PF
CF
条件码标志:
OF SF ZF CF AF PF 溢出标志 符号标志 零标志 进位标志 辅助进位标志 奇偶标志
控制பைடு நூலகம்志:
DF IF TF 方向标志 中断标志 陷阱标志 AX, BX