第3章答案指令系统1-40
第3章(1) 寻址方式和指令系统
EA的组成不同,寻找其中的操作数的方式也随之不同。如何寻找操作数 的有效地址,进而找到所需操作数的方式就是寻址方式 因为EA的组成方式都体现在指令中,故寻址方式也可以说是在指令中获得 操作数所在地址的方法。
3.1 Pentium的寻址方式
• 指令的两个问题
– 指出进行什么操作 – 涉及的操作数和操作结果放在何处
在这种寻址方式中,操作数是在存储器中,但是,操作 数的地址的16位偏移量包含在以下四个寄存器SI、DI、 BP、BX之一中。这又可分成两种情况: 1、 BX、SI、DI间址时以DS为默认段地址; 例:MOV AX,[SI] 2、BP间址时以SS为默认段地址。 例:MOV AX,[BP]
医药信息工程学院 何永玲
二、操作数存在方式
在微型计算机中,操作数可能以以下四种方式存在:
• 操作数包含在指令中——即指令的操作数场就包含着操作数本身。
MOV AX, 1234 ; ADD AL, 2
• 操作数包含在CPU的某一个内部寄存器中—— 这时指令中的操作数场是
CPU内部 寄存器的一个编码。
MOV DS, AX
• 操 作 数 在 内 存 的 数 据 区 中 —— 这 时 指 令 中 的 操 作 数 场 包 含 着 此 操 作 数 的
医药信息工程学院 何永玲
3.2.2 算术运算指令(1-P88)
– 不带进位位的加法指令ADD
比如: ADD ADD ADD ADD 比如: ADC ADC ADC CX,1000H ;CX=CX+1000h DI,SI [BX+DI],AX EAX,[BX+2000H]
• 无符号数和有符号数采用同一套加法指令及减法 所有算术运算指令均影响状态标志。 指令有两个条件:
《计算机组成原理》第3章习题答案
第3章习题解答1.指令长度和机器字长有什么关系?半字长指令、单字长指令、双字长指令分别表示什么意思?解:指令长度与机器字长没有固定的关系,指令长度可以等于机器字长,也可以大于或小于机器字长。
通常,把指令长度等于机器字长的指令称为单字长指令;指令长度等于半个机器字长的指令称为半字长指令;指令长度等于两个机器字长的指令称为双字长指令。
2.零地址指令的操作数来自哪里?一地址指令中,另一个操作数的地址通常可采用什么寻址方式获得?各举一例说明。
解:双操作数的零地址指令的操作数来自堆栈的栈顶和次栈顶。
双操作数的一地址指令的另一个操作数通常可采用隐含寻址方式获得,即将另一操作数预先存放在累加器中。
例如,前述零地址和一地址的加法指令。
3.某机为定长指令字结构,指令长度16位;每个操作数的地址码长6位,指令分为无操作数、单操作数和双操作数三类。
若双操作数指令已有K种,无操作数指令已有L种,问单操作数指令最多可能有多少种?上述三类指令各自允许的最大指令条数是多少?解:X= (24一K)×26一[L/26]双操作数指令的最大指令数:24一1。
单操作数指令的最大指令数:15×26一l(假设双操作数指令仅1条,为无操作数指令留出1个扩展窗口)。
无操作数指令的最大指令数:216一212一26。
其中212为表示某条二地址指令占用的编码数,26为表示某条单地址指令占用的编码数。
此时双操作数和单操作数指令各仅有1条。
4.设某机为定长指令字结构,指令长度12位,每个地址码占3位,试提出一种分配方案,使该指令系统包含:4条三地址指令,8条二地址指令,180条单地址指令。
解:4条三地址指令000 XXX YYY ZZZ..011 XXX YYY ZZZ8条二地址指令100 000 XXX YYY..100 111 XXX YYY180条单地址指令101 000 000 XXX..111 110 011 XXX5.指令格式同上题,能否构成:三地址指令4条,单地址指令255条,零地址指令64条?为什么?解:三地址指令4条000 XXX YYY ZZZ..011 XXX YYY ZZZ单地址指令255条100 000 000 XXX..111 111 110 YYY只能再扩展出零地址指令8条,所以不能构成这样的指令系统。
单片机课后习题解答
单片机课后习题解答练习练习练习第二章单片机结构及原理1、mcs-51单片机内部涵盖哪些主要功能部件?它们的促进作用就是什么?请问:(1)一个8bitcpu就是微处理器的核心,就是运算和逻辑排序的中心。
(2)片内震荡器及时钟电路:提供标准时钟信号,所有动作都依据此进行。
(3)4krom程序存贮器:存贮程序及常用表格。
(4)128bram数据存贮器:暂存一些中间变量和常数等。
(5)两个16bit定时器/计数器:全然硬件定时器(6)32根可编程i/o口线:标准8位双向(4个)i/o接口,每一条i/o线都能独立地作输入或输出。
(7)一个可编程全双工串行口。
(8)五个中断源。
2、什么是指令?什么是程序?请问:指令就是规定计算机继续执行某种操作方式的命令。
程序是根据任务要求有序编排指令的集合。
3、如何重新认识89s51/52存储器空间在物理结构上可以分割为4个空间,而在逻辑上又可以分割为3个空间?答:89s51/52存储器空间在物理结构上设有4个存储器空间:片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。
在逻辑上有3个存储器地址空间:片内、片外统一的64kb程序存储器地址空间,片内256b数据存储器地址空间,片外64kb的数据存储器地址空间。
4、开机复位后,cpu使用的是哪组工作寄存器?他们的地址是多少?cpu如何确定和改变当前工作寄存器组?请问:开机登位后,cpu采用的就是第0组与工作寄存器,地址为00h~07h,cpu通过发生改变状态字寄存器psw中的rs0和rs1去确认工作寄存器组。
5、什么是堆栈?堆栈有何作用?在程序设计时,有时为什么要对堆栈指针sp重新赋值?如果cpu在操作中要使用两组工作寄存器,sp应该多大?请问:堆栈就是一个特定的存储区,主要功能就是暂时存放数据和地址,通常用以维护断点和现场。
堆栈指针sp登位后指向07h单元,00h~1fh为工作寄存器区,20h~2fh为十一位串行区,这些单元存有其他功能,因此在程序设计时,须要对sp再次赋值。
第3章指令系统
XCHD A, @Ri 结果:(A)=? (30H)=?
(3) 累加器A中高四位与低四位交换指令
SWAP A
功能: 交换A中高、低半字节(3~0和7~4), 结果不影响标志寄存器PSW。
例: 设(A)=0A5H(10100101B) SWAP A 结果:(A)=5AH(01011010B)
3.3.2算术运算类指令
弹出指令:POP direct ; ((SP))←(direct),SP←SP-1
PUSH ACC PUSH B 则出栈的顺序为: POP B POP ACC
9.数据交换指令
(1)字节交换指令
目的操 作数 XCH A, XCH A, XCH A, 源操作数 功能说明 direct @Ri Rn (direct) ((Ri)) (Rn) 源操作数寻址 方式 直接寻址 间接寻址 寄存器寻址
5.16位目标地址传送指令
目的操 作数 MOV DPTR, 源操作数 功能说明 #data16 源操作数 寻址方式
;(DPTR)←data16 立即寻址
16位立即数的高8位送入DPH中,低8位送入DPL中。 该指令的执行,不影响程序状态寄存器PSW。
6.外部数据存储器(或I/O口)与累加器A传送指令
第3章
MCS-51单片机的指令系统
汇编语言的指令格式及符号简介
寻址方式 数据传送类指令 算术运算类指令 逻辑运算类指令 位操作类指令 控制转移类指令 思考练习题
3.1 汇编语言的指令格式及符号简介
3.1.1 指令格式
[标号:] 操作码助记符 [目的操作数] [, 源操作数]
例如: LOOP: MOV A, #50H DEC R0 DJNZ R0, LOOP END
第3章 PIC单片机指令系统
第3章 指令系统3.1 3.2 3.3 3.4 汇编语言 寻址方式 PIC18F452指令系统 程序设计举例3.1汇编语言• 指令:是 指令:是CPU CPU根据人的意图来执行某种操作的命令。
根据人的意图来执行某种操作的命令。
• 程序设计语言:是实现人机交换信息的基本工具,分为机 器语言、汇编语言和高级语言。
• 机器语言:用二进制编码表示每条指令 机器语言:用二进制编码表示每条指令,是计算机能 ,是计算机能直接 直接 识别和执行的语言。
识别和执行 的语言。
• 汇编语言:是用助记符、符号和数字 汇编语言:是用助记符、符号和数字等来表示指令的程序 等来表示指令的程序 设计语言。
它与机器语言指令是一一对应的。
设计语言。
它与机器语言指令是一一对应的。
? 汇编语言编写的程序能否直接被计算机执行? • 高级语言:面向问题和计算过程的语言,可通用于各种不 同的计算机。
用户编程时不必了解所用计算机的指令系统。
Why study assembly language?• Many critical programs are written in assembly language • To better understand the functions and architecture of a computer system • To better understand the working of high level languages • To design efficient programs • A tool for writing system programs • Embedded systems development– Mixed languages programming3• PIC18F452 PIC18F452汇编语言指令格式 汇编语言指令格式 标记段: 标记段 :操作码 [目的 目的操作数 操作数][, ][,源 源操作数 操作数][ ][; ;注释 注释] ]MOVLW BTFSS BCF GOTO 0x7F WREG, 7 WREG, 0 Stop ;load test data ;clear bit 0Stop:• 其中操作码 其中操作码是必不可少的。
大工计算机原理第3章8086微处理器的指令系统(1)资料
第3章 8086微处理器的指令系统(1)3.1 指令系统概述● 指令系统是一台计算机所能(识别和执行)的全部指令的集合。
它与(微处理器)有着密切的关系,不同的微处理器有不同的指令系统。
8086CPU 包含133条指令● 指令是使计算机执行某种(特定操作)的二进制编码。
指令一般包括两个部分:(操作码域)和(地址域)。
填空操作码域:存放指令的操作码,即指明该指令应由计算机完成何种操作。
地址域:确定操作数的值或地址、操作结果的地址,有的指令的地址域还指出下一条指令的地址。
● 机器指令:计算机能(直接识别)的二进制代码。
● 汇编语言:汇编语言是一种符号语言,用助记符表示操作码,用符号或符号地址表示操作数或操作数地址,它与机器指令是一一对应的● 汇编程序:将汇编语言源程序翻译成机器语言(就是一条一条的机器指令),即目标程序。
3.2寻址方式● 根据(指令内容)确定(操作数地址)的过程,称为寻址。
● 根据寻址方式计算所得到的地址叫做(有效地址EA ),也就是(段内偏移地址)。
有效地址还需要与相应的(段基地址)组合才是20位的(物理地址PA) ,该工作由微处理器来完成。
牢记什么是EA ?什么是PA ?怎么计算?后面有关于EA 和PA 的解释及计算方法!● 寻址方式在两种方式下被涉及:(操作数)的寻址方式和(指令)的寻址方式。
如果没有特别说明,寻址方式是指源操作数的寻址方式。
1、隐含寻址(隐含了规定的操作数)例:DAA 指令,只有操作码,无操作数。
规定对AL 中的内容进行压缩BCD 码转换。
2、立即寻址(操作数(立即数)直接放在指令中,不需访问存储器)例:MOV AX ,1234H (若CS=1000H ,IP=100H )3、寄存器寻址(操作数就放在内部寄存器中,不需访问存储器)例:INC CX ;(CX)←(CX)+1 MOV AX ,BX ;执行后BX 内容不变 4、直接寻址(指令中直接给出操作数的存放地址) 例1:MOV AX ,[4000H] (DS =3000H )☞操作数寻址 可以进行寄存器寻址的寄存器: (16位)AX 、BX 、CX 、DX 、SI 、DI 、SP 、BP(8位) AH 、AL 、BH 、BL 、CH 、CL 、DH 、DL例2:MOV ES:[1234H],BL (ES =4000H )注意:(1)指令中给出的[4000H]和[1234H]是操作数的偏移地址。
DSP(知识点+思考题)
DSP复习要点第一章绪论1、数的定标:Qn表示。
例如:16进制数2000H=8192,用Q0表示16进制数2000H=0.25,用Q15表示2、‟C54x小数的表示方法:采用2的补码小数;.word 32768 *707/10003、定点算术运算:乘法:解决冗余符号位的办法是在程序中设定状态寄存器STl中的FRCT位为1,让相乘的结果自动左移1位。
第二章CPU结构和存储器设置一、思考题:1、C54x DSP的总线结构有哪些特点?答:TMS320C54x的结构是围绕8组16bit总线建立的。
(1)、一组程序总线(PB):传送从程序存储器的指令代码和立即数。
(2)、三组数据总线(CB,DB和EB):连接各种元器件,(3)、四组地址总线(PAB,CAB,DAB和EAB)传送执行指令所需要的地址。
2、C54x DSP的CPU包括哪些单元?答:'C54X 芯片的CPU包括:(1)、40bit的算术逻辑单元(2)、累加器A和B(3)、桶形移位寄存器(4)、乘法器/加法器单元(5)、比较选择和存储单元(6)、指数编码器(7)、CPU状态和控制寄存器(8)、寻址单元。
1)、累加器A和B分为三部分:保护位、高位字、地位字。
保护位保存多余高位,防止溢出。
2)、桶形移位寄存器:将输入数据进行0~31bits的左移(正值)和0~15bits的右移(负值)3)、乘法器/加法器单元:能够在一个周期内完成一次17*17bit的乘法和一次40位的加法4)、比较选择和存储单元:用维比特算法设计的进行加法/比较/选择运算。
5)、CPU状态和控制寄存器:状态寄存器ST0和ST1,由置位指令SSBX和复位指令RSBX控制、处理器模式状态寄存器PMST2-3、简述’C54x DSP的ST1,ST0,PMST的主要功能。
答:’C54x DSP的ST1,ST0,PMST的主要功能是用于设置和查看CPU的工作状态。
•ST0主要反映处理器的寻址要求和计算机的运行状态。
03.9 第三章 - 单片机指令系统(位操作指令MOV、SETB、CLR、CPL、ANL、ORL)
;A = 59H = 0101 1001B ;P1 = A = 0101 1001B ;C = 1 ;ACC.1 = 1 ;P1.3 = 0 ;P1.6 = 0 ;P1.2 = 1 ;(20H)= P1 = 0001 0101B ;(30H)= A = 0101 1011B
09:43
单片机技术
8
3.9.2 位控制指令(SETB、CLR、CPL)
;P1.0 = 1 ;ACC.3 = 0 ;C = 1 ;C = 1 ;C = 1 ;P3.4 = 1
09:43
单片机技术
14
3.9.3 位条件转移指令(JC、JB、JBC)
❖ 1.判C转移指令ຫໍສະໝຸດ JC、JNC)JC rel
;先PC←PC+2;若(Cy)= 1时转移,且PC'
=PC+rel,否则顺序执行
CPL bit ;(bit)= (/bit)
▪ 功能:将Cy或bit取反。
09:43
单片机技术
9
3.9.2 位控制指令(SETB、CLR、CPL)
❖ 课堂练习
▪ 执行以下指令?
SETB P1.0 CLR 20H CLR PSW.2 CPL PSW.2 CLR RS0 SETB RS1
;P1.0 = 1 ;20H = 0 ;PSW.2 = 0 ;PSW.2 = 1 ;RS0 = 0 ;RS1 = 1
❖ 1.位置1指令(SETB)
▪ 格式:SETB C ;(Cy) = 1
SETB bit ;(bit)= 1
▪ 功能:将Cy或bit置1。
❖ 2.位置0指令(CLR)
▪ 格式:CLR C ;(Cy) = 0
CLR bit ;(bit)= 0
▪ 功能:将Cy或bit置0。
第3章--Cortex-M3-指令系统
3.2.2指令的可选后缀
(2)!后缀 如果指令地址表达式中不含!后缀,则基址寄存器中的地址值不会发生变化。 指令中的地址表达式中含有!后缀时,指令执行后,基址寄存器中的地址值将发 生变化,变化的结果如下: 基址寄存器中的值(指令执行后)=指令执行前的值+地址偏移量
例 3.3 分别执行下面两条指令有何区别?
18
3.3 指令的寻址方式
• 3.3.1 立即数寻址 • 3.3.2 寄存器寻址 • 3.3.3 寄存器间接寻址 • 3.3.4 寄存器移位寻址 • 3.3.5 基址变址寻址 • 3.3.6 多寄存器寻址 • 3.3.7 相对寻址 • 3.3.8 堆栈寻址
3.3.1立即数寻址
• 立即数寻址也叫立即寻址,操作数本身就在指令中给出,取出指令也就
第3章 Cortex-M3 指令系统
1
第3章 Cortex-M3 指令系统
• 3.1 指令基础 • 3.2 汇编语言 • 3.3 寻址方式 • 3.4 指令集
2
3.1 指令基础
• 3.1.1 程序设计语言的层次结构 • 3.1.2 程序的执行过程 • 3.1.3 Cortex M3寄存器
3.1.1程序设计语言的层次结构
S后缀通常用于对条件进行测试,例如是否有溢出,是否进位等;根据 这些变化,就可以进行一些判断,如是否大于,是否相等;从而可能影响 指令执行的顺序。
✓ 条件后缀和S后缀的关系如下: 如果既有条件后缀又有S后缀,则书写时S排在后面, 如:ADDEQS R1,R0,R2 该指令在Z=1时执行,将R0+R2的值放入R1,同时刷新条件标志位。
无法表示的32位数, 只有通过逻辑或算术运算等其它途径获得了. 比如0xffffff00, 可以通过0x000000ff按位取反得到.
第3章8086寻址方式和指令系统-题
第3章8086寻址⽅式和指令系统-题第3章8086寻址⽅式和指令系统⼀、单项选择题(共50⼩题)1、指令MOV AX,[3070H]中源操作数的寻址⽅式为()A、寄存器间接寻址B、⽴即寻址C、直接寻址D、变址寻址2、DS是()A、数据段寄存器B、代码段寄存器C、堆栈段寄存器D、附加数据段寄存器3、CF是()A、进位标志位B、辅加进位标志位C、符号标志位D、全零标志位4、SS是_()A、数据段寄存器B、代码段寄存器C、堆栈段寄存器D、附加数据段寄存器5、指令MOV [BX],AX中A、⽬的操作数是寄存器操作数B、源操作数是存储器操作数C、⽬的操作数是存储器操作数D、源操作数是⽴即操作数6、CS是()A、数据段寄存器B、代码段寄存器C、堆栈段寄存器D、附加数据段寄存器B、源操作数存于堆栈段C、⽬的操作数存于数据段D、⽬的操作数存于堆栈段8、BX是()A、8位通⽤寄存器B、16位通⽤寄存器C、16位段寄存器D、16位变址寄存器9、ZF是()A、进位标志B、⽅向标志C、符号标志D、零标志10、IP是()A、指令指针寄存器B、堆栈指针寄存器C、通⽤寄存器D、变址寄存器11、SI是()A、8位通⽤寄存器B、16位通⽤寄存器C、16位段寄存器D、指令指针寄存器12、DL是()A、16位段寄存器B、16位通⽤寄存器C、8位通⽤寄存器D、16位标志寄存器13、指令IDIV BX 的含义是()A、(AX)/(BX)B、(DX:AX)/(BX)C、(AL)/(BX)D、(AL)/(BL)B、DXC、BPD、DI15、设SS=2000H,执⾏下列程序段后SP=()MOV SP,2000HPUSH AXA、21FFEHB、20000HC、22000HD、22002H16、寄存器间接寻址⽅式中,操作数在( )中。
A、通⽤寄存器B、堆栈C、内存单元D、段寄存器17、JMP WORD PTR[DI]是( )A、段内间接转移B、段间间接转移C、段内直接转移D、段间直接转移18、堆栈指针SP的作⽤是( )。
第三章MCS-51单片机指令系统习题含答案
第三章MCS-51单片机指令系统习题含答案第三章MCS-51单片机指令系统习题含答案3.1 判断下列说法是否正确。
(A)立即寻址方式是被操作的数据本身在指令中,而不是它的地址在指令中。
(√)(B)指令周期是执行一条指令的时间。
(√)(C)指令中直接给出的操作数称为直接寻址。
(×)3.2在基址加变址寻址方式中,以(A)作变址寄存器,以(DPTR)或(PC)作基址寄存器3.3 MCS-51共有哪几种寻址方式?各有什么特点?答:共有7种寻址方式。
(1)寄存器寻址方式操作数在寄存器中,因此指定了寄存器就能得到操作数。
(2)直接寻址方式指令中操作数直接以单元地址的形式给出,该单元地址中的内容就是操作数。
(3)寄存器间接寻址方式寄存器中存放的是操作数的地址,即先从寄存器中找到操作数的地址,再按该地址找到操作数。
(4)立即寻址方式操作数在指令中直接给出,但需在操作数前面加前缀标志“#”。
(5)基址寄存器加变址寄存器间接寻址方式以DPTR或PC作基址寄存器,以累加器A作为变址寄存器,并以两者内容相加形成的16位地址作为操作数的地址,以达到访问数据表格的目的。
(6)位寻址方式位寻址指令中可以直接使用位地址。
(7)相对寻址方式在相对寻址的转移指令中,给出了地址偏移量,以“rel”表示,即把PC的当前值加上偏移量就构成了程序转移的目的地址。
3.4 MCS-51指令按功能可以分为哪几类?答:MCS-51指令系统按功能分为:数据传送类(28条);算术操作类(24条);逻辑运算类(25条);控制转移类(17条);位操作类(17条)。
3.5 指令格式是由(操作码)和(操作数)所组成,也可能仅由(操作码)组成。
3.6 假定累加器A中的内容为30H,执行指令:1000H:MOVC A,@A+PC后,把程序存储器(1031H)单元的内容送入累加器中3.7 在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,而是操作数的(地址)。
微计算机原理(第2版)第三章课后习题答案潘名莲马争丁庆生编著备课讲稿
第三章80x86 指令系统3-1 指令由操作码字段和操作数字段组成。
8086的指令长度在1~6字节范围。
3-2 分别指出下列指令中源操作数和目的操作数的寻址方式。
若是存储器寻址,使用表达式表示出EA=?PA=?(1) MOV SI, 2100H (2) MOV CX, DISP[BX] (3) MOV [SI], AX(4) ADC ZX, [BX][SI] (5) AND AX, DX (6) MOV AX, [BX+10H](7) MOV AX, ES:[BX] (8)MOV AX, [BX+SI+20H] (9) MOV [BP], CX(10) PUSH DS解:源操作数寻址目的操作数寻址EA PA1) MOV SI, 2100H 立即数寻址寄存器————(2) MOV CX, DISP[BX] 寄存器相对寻址寄存器[BX+SISP] (DS)*16+(BX+DISP)(3) MOV [SI], AX 寄存器寻址寄存器间接[SI[ (DS)*16+(SI)(4) ADC ZX, [BX][SI] 基址变址寻址寄存器[BX+SI] (DS)*16+(BX)+(SI)(5) AND AX, DX 寄存器寻址寄存器————(6) MOV AX, [BX+10H] 寄存器相对寻址寄存器[BX+DISP] (DS)*16+(BX)+10H(7) MOV AX, ES:[BX] 带段超越寄存器寻址寄存器[BX] (ES)*16+(BX)(8)MOV AX, [BX+SI+20H] 相对基址变址寻址寄存器[BX+SI+20H] (DS)*16+(BX)+(SI)+20H(9) MOV [BP], CX 寄存器寻址寄存器间接[BP] (SS)*16+(BP)(10) PUSH DS 固定寻址寄存器[SP] (SS)*16+(SP)3-3 已知8086中一些寄存器的内容和一些存储器单元的内容如图3-1所示,试指出下列各条指令执行后,AX中的内容。
单片机,第三章答案
单片机,第三章答案本页仅作为文档封面,使用时可以删除This document is for reference only-rar21year.March思考题:【3-1】汇编语言与C语言哪种语言的可读性和可移植性强在对速度和时序敏感的场合应该使用什么语言对于复杂的单片机系统一般采用C与汇编混合编程的形式这句话对吗【3-2】二进制机器语言与C和汇编语言两者之间是什么关系用C或汇编编制的程序在ROM中是以编译后的二进制代码的形式存放这句话对吗【3-3】80C51系列单片机指令的格式包含哪几个部分各部分之间的间隔符是什么四个部分中哪个部分是必须存在的,哪几个部分是可有可无的标号的格式和代表的意义是【3-4】80C51系列单片机有哪几种寻址方式【3-5】80C51单片机中立即数是存放在ROM中还是RAM中【3-6】判断下列说法是否正确。
(1)立即数寻址方式是被操作的数据本身就在指令中,而不是它的地址在指令中。
()(2)指令周期是执行一条指令的时间。
()(3)指令中直接给出的操作数称为直接寻址。
()(4)内部寄存器Rn(n=0~7)可作为间接寻址寄存器。
()【3-7】80C51单片机可以进行直接寻址的区域是【3-8】80C51单片机可以进行寄存器寻址的范围是【3-9】80C51单片机可以进行寄存器间接寻址的寄存器是寻址的范围是【3-10】在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,而是操作数的()。
【3-11】80C51单片机变址寻址方式中可以作基址的寄存器是可以作变址的寄存器是@A+PC,@A+DPTR所找到的操作数是在ROM中对吗【3-12】80C51单片机相对寻址改变的是PC的当前值,即改变的CPU执行指令的顺序这句话对否【3-13】若访问特殊功能寄存器,只可以采用那种寻址方式【3-14】若访问外部RAM单元,只可以使用哪种寻址方式【3-15】若访问内部RAM单元,可使用哪些寻址方式【3-16】若访问内外程序存储器,可使用哪些寻址方式【3-17】80C51单片机可以进行位寻址的字节单元范围除11个可位寻址的特殊功能寄存器外还包括哪个区域分别找出位地址是00H、08H、22H、7FH、D0H、E0H对应的字节地址【3-18】已知(30H)=40H,(40H)=10H,(10H)=32H,(P1)=0EFH,试写出执行以下程序段后有关单元的内容。
03.8 第三章 - 单片机指令系统(逻辑运算指令ANL、ORL、XRL、CPL、RL、RR、RRC、RLC)
0000 1001
0
9
09:42
单片机技术
6
3.8.1 逻辑“与”运算指令(ANL)
❖ 练习 ▪ 已知(A)=6EH,(R0)=9BH,执行ANL A,R0后 ?
0110 1110
∩ 1001 1010
0000 1010
0
A
09:42
单片机技术
7
3.8.1 逻辑“与”运算指令(ANL)
第三章:单片机指令系统
3.8 逻辑运算类指令
09:42
单片机技术
1
第三章:MSC-51 单片机指令系统
3.8 - 逻辑运算类指令
☺ 3.8.1 逻辑“与”运算指令 ☺ 3.8.2 逻辑“或”运算指令 ☺ 3.8.3 逻辑“异或”运算指令 ☺ 3.8.4 累加器A清0和取反 ☺ 3.8.5 “左移”循环指令(RL RLC) ☺ 3.8.6 “右移”循环指令(RR RRC)
∪ 1000 1001
1101 1111
D
F
09:42
单片机技术
12
3.8.2 逻辑“或”运算指令(ORL)
❖ 2.高考考点(ORL)
▪ 规则:有1出1,全0出0(按位) ▪ 功能:置1操作 ▪ 方法:某一位要置1则该位写1,其余不变位写0
09:42
单片机技术
13
3.8.2 逻辑“或”运算指令(ORL)
09:42
单片机技术
10
3.8.2 逻辑“或”运算指令(ORL)
❖ 1.“或” 逻辑指令(ORL)
▪ 指令格式:
ORL A ,
#data ;A ←(A)∪ data ,立即寻址 direct ;A ←(A)∪ direct ,直接寻址 Rn ;A ←(A)∪ (Rn) ,寄存器寻址 @Ri ;A ←(A)∪ (@Ri),寄间寻址
第3章 8086指令系统(最后有练习题)
开 始
8086CPU的指令系统的基本指令
包括数据传送类指令、算术运算类指令、 位操作类指令、串操作类指令、控制转移 类指令、处理机控制类指令。后几节将分 别介绍这些指令的语句格式和功能。
3.1 8086的寻址方式
3.1.1 数据的寻址方式 3.1.2 程序转移地址的寻址方式 3.1.3 对端口的寻址方式
3.1.2 程序转移地址的寻址方式
用来确定转移指令及CALL指令的转向地址。
段内寻址
段内直接寻址 段内间接寻址 段间直接寻址 段间间接寻址
段间寻址
段内:转移指令与转向的目标指令在同一代码段 中,(CS)不变。
段间:转移指令与转向的目标指令在两个代码段中, (CS) 变化。
表示转移距离(称为位移量)的操作符:
返回本节
2 . 寄存器寻址
寄存器寻址方式的操作数在指令指明的寄 存器中。 汇编格式:R ,其中R表示寄存器名。 功能:操作数直接存放在寄存器R中。 例如:MOV AL,BL
【例3-2】下列程序执行后,(AX)=?,
(BX)=?
MOV AX,1234H
MOV BX,5678H
ADD AX,BX 执行:1234H→AX 5678H→BX (AX)+(BX)→AX 执行后:(AX)=68ACH,(BX)=5678H
3 . 直接寻址
特点:操作数在内存中。 汇编格式:①含有变量的地址表达式。 ②段寄存器名:[EA] 。 功能:指令下一字单元的内容是操作数的偏 移地址EA。 图形表示:
【例3-3】
寄存器和存储器内容为:(AX)=1212H, (DS)=3000H,(32000H)=45H, (32001H)=46H。 执行指令:MOV AX ,[2000H] 问执行后:(AX)=? Step1:计算地址DS*16+2000H=32000H Step2:找内容(32000H),(32001H) 所以执行后:(AX)=4645H
第3章 MCS-51单片机指令系统1
2.操作码:指明指令功能,是指令功能的英文缩写。 汇编语句格式中唯一不能空缺的部分。
MOV__move传送 XCH__exchange交换 ANL__and logic与逻辑运算 XRL__exclusive or异或运算
MUL__Multiply乘法
RR__rotate right右循环 SJMP__short jump短跳转 RET__return 子程序返回 操作码助记符
MCS-51系列单片机指令系统分类
按寻址方式分为以下七种 1、立即寻址 2、直接寻址 3、寄存器寻址 按功能分为以下五种: 1、数据传送指令 2、算术运算指令 3、逻辑运算指令
4、寄存器间接寻址指令
5、相对寻址
4、控制转移指令
5、位操作指令
6、变址寻址
7、位寻址
3.3 指令系统的寻址方式
我的信在她 那!找信去!
快件
目的地
MOV A,#30H
30H
A
这类指令大都是双字节指令,仅有指令:MOV DPTR,#DATA16是三字节指令,它提供两字节立即 数。 第一位数字
是A~F时在 其前加0
对立即数的书写要求:对于单字节立即数,若 数值大于等于A0H,则要在其前面加一个0,如指令 “MOV A,#0A0H”,该指令含义是把立即数A0H送 累加器;对于双字节立即数,若数值大于等于 A000H,则要在其前面加一个0。对于直接地址和偏 移量也按相同方法书写。
1.标号:指令的符号地址 一般由字母和数字组成,第一位必须为字母,冒 号 “ :” 结 束 。 字 符 个 数 不 能 超 过 8 个 。 AD5 、 Q555、BB5D、pat、loop等为合法标号;5P、PA、10AD、+A等为非法标号。 不能用汇编语言已定义的符号作标号。如助记符、 伪指令、寄存器名称等。 同一标号在一个程序中只能定义一次。 标号在语句中的有无取决于本语句是否被访问。
第3章CP1H PLC的指令系统
T0001 0.01 C0002
100.01
100.02
例3-16 TIM与CNT组合实现 延时30min 例3-17 30min定时
《可编程控制器应用》课程及其实践体系建设课题组
博学 明德 求是
符号
《可编程控制器应用》课程及其实践体系建设课题组
博学 明德 求是
符号
《可编程控制器应用》课程及其实践体系建设课题组
R
KEEP 100.04
1 2 3 复位输入端 4 LD OR OUT 0.00 100.04 100.04
0.00(S) 0.01(R)
AND NOT 0.01
100.04(KEEP)
《可编程控制器应用》课程及其实践体系建设课题组
博学 明德 求是
KEEP指令的注意点
置位输入端接通时,它所指定的继电器接通;复位输入端接通时,它所指定的继电 器断开。置位和复位输入同时为ON时,复位端优先。
4. 逻辑块指令
0.00 100.00
0.00 0.01
0.02
100.00
0.03
100.01 OUT-NOT
AND-LD
两个或两个以上的触点并联构成的逻辑电
0.01 0.02
将逻辑运算结果(输入条件)取反并输出指定线圈。 路称为“并联逻辑块”
100.00
0.03 0.04
OR-LD
两个或两个以上的触点串联构成的逻辑电路称为“串联逻辑块”
计数器是加计数还是减计数? 计数的范围是多少? 什么情况下实现减数操作? 当计数输入和复位输入同时为ON时,出现什么情况?
0.00 0.01 0001 #0010
《可编程控制器应用》课程及其实践体系建设课题组
计算机系统第三章答案
习题3.参考答案:(1)后缀:w,源:基址+比例变址+偏移,目:寄存器(2)后缀:b,源:寄存器,目:基址+偏移(3)后缀:l,源:比例变址,目:寄存器(4)后缀:b,源:基址,目:寄存器(5)后缀:l,源:立即数,目:栈(6)后缀:l,源:立即数,目:寄存器(7)后缀:w,源:寄存器,目:寄存器(8)后缀:l,源:基址+变址+偏移,目:寄存器4.参考答案:(1)源操作数是立即数0xFF,需在前面加‘$’(2)源操作数是16位,而长度后缀是字节‘b’,不一致(3)目的操作数不能是立即数寻址(4)操作数位数超过16位,而长度后缀为16位的‘w’(5)不能用8位寄存器作为目的操作数地址所在寄存器(6)源操作数寄存器与目操作数寄存器长度不一致(7)不存在ESX寄存器(8)源操作数地址中缺少变址寄存器5.参考答案:6.参考答案:(1)xptr、yptr和zptr对应实参所存放的存储单元地址分别为:R[ebp]+8、R[ebp]+12、R[ebp]+16。
(2)函数func的C语言代码如下:void func(int *xptr, int *yptr, int *zptr){int tempx=*xptr;int tempy=*yptr;int tempz=*zptr;*yptr=tempx;*zptr = tempy;*xptr = tempz;}7.参考答案:(1)R[edx]=x(2)R[edx]=x+y+4 (3)R[edx]=x+8*y (4)R[edx]=y+2*x+12 (5)R[edx]=4*y (6)R[edx]=x+y 8.参考答案:(1)指令功能为:R[edx]←R[edx]+M[R[eax]]=0x 00000080+M[0x8049300],寄存器EDX 中内容改变。
改变后的内容为以下运算的结果:00000080H+FFFFFFF0H因此,EDX 中的内容改变为0x00000070。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第3章指令系统1,简述下列基本概念:指令,指令系统,机器语言,汇编语言,高级语言。
1、指令:CPU根据人的意图来执行某种操作的命令指令系统:一台计算机所能执行的全部指令集合机器语言:用二进制编码表示,计算机能直接识别和执行的语言汇编语言:用助记符、符号和数字来表示指令的程序语言高级语言:独立于机器的,在编程时不需要对机器结构及其指令系统有深入了解的通用性语言2,什么是计算机的指令和指令系统?2、见第1题。
3,简述89C51汇编指令格式。
3、操作码[目的操作数] [,源操作数]4,简述89C51寻址方式和所能涉及的寻址空间。
5,要访问特殊功能寄存器和片外数据寄存器,应采用哪些寻址方式?5、SFR:直接寻址,位寻址,寄存器寻址;片外RAM:寄存器间接寻址6,在89C51片内RAM中,已知(30H)=38H, (38H)=40H, (40H)=48H, (48H)=90H, 请分析下面各是什么指令,说明源操作数的寻址方式以及按顺序执行每条指令后的结果。
6、MOV A,40H ;直接寻址(40H)→AMOV R0,A ;寄存器寻址(A)→R0MOV P1,#0F0H ;立即数寻址0F0→P1MOV @R0,30H ;直接寻址(30H)→(R0)MOV DPTR,#3848H ;立即数寻址3848H→DPTRMOV 40H,38H ;直接寻址(38H)→40HMOV R0,30H ;直接寻址(30H)→R0MOV P0,R0 ;寄存器寻址(R0 )→P0MOV 18H,#30H ;立即数寻址30H→18HMOV A,@R0 ;寄存器间接寻址((R0)) →AMOV P2,P1 ;直接寻址(P1)→P2最后结果:(R0)=38H,(A)=40H,(P0)=38H,(P1)=(P2)=0F0H,(DPTR)=3848H,(18H)=30H,(30H)=38H,(38H)=40H,(40H)=40H,(48H)=38H 注意:→左边是内容,右边是单元7,对89C51片内RAM的高128字节的地址空间寻址要注意什么7、用直接寻址,位寻址,寄存器寻址8,指出下列指令的本质区别。
8,MOV A,DATA ;直接寻址2字节1周期MOV A,#DATA ;立即数寻址2字节1周期MOV DATA1,DATA2 ;直接寻址3字节2周期MOV 74H,#78H ;立即数寻址3字节2周期如果想查某一指令的机器码,字节数或周期数可查阅书本后面的附录A9,设R0内容为32H, A的内容为48H, 片内RAM的32H单元内容为80H, 40H单元内容为08H, 请指出在执行下列程序段后上述各单元内容的变化。
9、MOV A,@R0 ;((R0))=80H→AMOV @R0,40H ;(40H)=08H→(R0)MOV 40H,A ;(A)=80→40HMOV R0,#35H ;35H→R0最后结果:(R0)=35H (A)=80H,(32H)=08H,(40H)=80H10,如何访问SFR,可使用哪些寻址方式?10、用直接寻址,位寻址,寄存器寻址11,如何访问片外RAM,可使用哪些寻址方式?11、只能采用寄存器间接寻址(用MOVX指令)12,如何访问片内RAM,可使用哪些寻址方式?12、低128字节:直接寻址,位寻址,寄存器间接寻址,寄存器寻址(R0~R7)高128字节:直接寻址,位寻址,寄存器寻址13,如何访问片内外程序存储器,可使用哪些寻址方式?13、采用变址寻址(用MOVC指令)14,说明十进制调整的原因和方法。
14、压缩BCD码在进行加法运算时应逢十进一,而计算机只将其当作十六进制数处理,此时得到的结果不正确。
用DA A指令调整(加06H,60H,66H)15,说明89C51的布尔处理机功能。
15、用来进行位操作16,已知(A)=83H, (R0)=17H, (17H)=34H, 请写出执行完下列程序段后A的内容。
16、ANL A,#17H ;83H∧17H=03H→AORL 17H,A ;34H∨03H=37H→17HXRL A,@R0 ;03H⊕37H=34HCPL A ;34H求反等于CBH所以(A)=CBH17,使用位操作指令实现下列逻辑功能,要求不得改变未涉及位的内容。
(1)使ACC.0置1;(2)清除累加器高4位;(3)清除ACC.3,ACC.4,ACC.5,ACC.6 。
17、(1)SETB ACC.0或SETB E0H ;E0H是累加器的地址(2)CLR ACC.7CLR ACC.6CLR ACC.5CLR ACC.4(3)CLR ACC.6CLR ACC.5CLR ACC.4CLR ACC.318,编程实现把内部RAM R0~R7 的内容传递到20H~27H单元。
18、MOV 27H,R7MOV 26H,R6MOV 25H,R5MOV 24H,R4MOV 23H,R3MOV 22H,R2MOV 21H,R1MOV 20H,R019,试编写程序,将内部RAM 20H、21H和22H3个连续单元的内容依次存入2FH、2EH 和2DH 中。
19、MOV 2FH,20HMOV 2EH,21HMOV 2DH,22H20,编写程序,进行两个16位数减法,6F5DH –13B4H, 结果存入内部RAM的30H和31H单元,30H存储低8位。
20、CLR CMOV A,#5DH ;被减数的低8位→AMOV R2,#0B4H ;减数低8位→R2SUBB A,R2 ;被减数减去减数,差→AMOV 30H,A ;低8位结果→30HMOV A,#6FH ;被减数的高8位→AMOV R2,#13H ;减数高8位→R2SUBB A,R2 ;被减数减去减数,差→AMOV 31H,A ;高8位结果→30H注意:如果在你的程序中用到了进位位,在程序开始的时候要记得清0进位位21,编写程序,若累加器A的内容分别满足下列条件,则程序转至LABEL存储单元。
设A中存储的是无符号数。
(1)A≥10; (2)A>10; (3)A≤10。
21、(1)A≥10CJNE A,#0AH,L1 ;(A)与10比较,不等转L1LJMP LABEL ;相等转LABELL1:JNC LABEL ;(A)大于10,转LABEL或者:CLR CSUBB A,#0AHJNC LABEL(2)A>10CJNE A,#0AH,L1 ;(A)与10比较,不等转L1RET ;相等结束L1:JNC LABEL ;(A)大于10,转LABELRET ;(A)小于10,结束或者:CLR CSUBB A,#0AHJNC L1RETL1:JNZ LABELRET(3)A≤10CJNE A,#0AH,L1 ;(A)与10比较,不等转L1L2:LJMP LABEL ;相等转LABELL1:JC L2 ;(A)小于10,转L2RET或者:CLR CSUBB A,#0AHJC LABELJZ LABELRET22,已知(SP)=25H, (PC)=2345H, (24H)=12H, (25H)=34H, (26H)=56H。
问此时执行“RET”指令以后,(SP)=? (PC)=?22、(SP)=23H,(PC)=3412H参看书上80页23,若(SP)=25H, (PC)=2345H, 标号LABEL所在地址为3456H。
问执行长调用指令“LCALL LABEL”后,堆栈指针和堆栈内容发生什么变化?PC值等于什么?23、(SP)=27H,(26H)=48H,(27H)=23H,(PC)=3456H参看书上79页24,上题中LCALL指令能否直接换成ACALL指令,为什么?如果使用ACALL 指令,则可调用的地址范围是什么?24、不能。
ACALL是短转指令,可调用的地址范围是2KB。
在看这个题的时候同时看一下AJMP指令。
同时考虑调用指令ACALL和LCALL 指令和RET指令的关系。
25,编写指令,查找在内部RAM的20H~50H单元中是否有0AAH这一数据。
若有,则将51H单元置为01H;若未找到,则将51H单元清0。
25、MOV R2,#31H ;数据块长度→R2MOV R0,#20H ;数据块首地址→R0LOOP:MOV A,@R0 ;待查找的数据→ACLR C ;清进位位SUBB A,#0AAH ;待查找的数据是0AAH吗JZ L1 ;是,转L1INC R0 ;不是,地址增1,指向下一个待查数据DJNZ R2,LOOP ;数据块长度减1,不等于0,继续查找MOV 51H,#00H ;等于0,未找到,00H→51HRETL1:MOV 51H,#01H ;找到,01H→51HRET26,编写指令,查找在内部RAM的20H~50H单元中出现00H的次数,并将查找结果存入51H单元。
26、MOV R2,#31H ;数据块长度→R2MOV R0,#20H ;数据块首地址→R0LOOP:MOV A,@R0 ;待查找的数据→AJNZ L1 ;不为0,转L1INC 51H ;为0,00H个数增1L1:INC R0 ;地址增1,指向下一个待查数据DJNZ R2,LOOP ;数据块长度减1,不等于0,继续查找RET27,外部数据RAM中有一个数据块,存有若干字符、数字,首地址为SOURCE。
要求将该数据块传送到内部RAM以DIST开始的区域,直到遇到字符“$”时结束(“$”也要传送,它的ASCII码是24H)。
27、MOV DPTR,#SOURCE ;源首地址→DPTRMOV R0,#DIST ;目的首地址→R0LOOP:MOVX A,@DPTR ;传送一个字符MOV @R0,AINC DPTR ;指向下一个字符INC R0CJNE A,#24H,LOOP ;传送的是“$”字符吗?不是,传送下一个字符RET28,已知R3和R4中存有一个16位的二进制数,高位在R3中,低位在R4中。
请编程将其求补,并存回原处。
28、MOV A,R3 ;取该数高8位→AANL A,#80H ;取出该数符号判断JZ L1 ;是正数,转L1MOV A,R4 ;是负数,将该数低8位→ACPL A ;低8位取反ADD A,#01H ;加1MOV R4,A ;低8位取反加1后→R4MOV A,R3 ;将该数高8位→ACPL A ;高8位取反ADDC A,#00H ;加上低8位加1时可能产生的进位SETB ACC.7MOV R3,A ;高8位取反加1后→R3L1:RET29,已知30H和31H中存有一个16位的二进制数,高位在前,地位在后,请编程将它们乘以2,再存回原单元中。
29、CLR C ;清进位位CMOV A,31H ;取该数低8位→ARLC A ;带进位位左移1位MOV 31H,A ;结果存回31HMOV A,30H ;取该数高8位→ARLC A ;带进位位左移1位MOV 30H,A ;结果存回30H30,内存中有两个4字节以压缩的BCD码形式存放的十进制数,一个存放在30H~33H单元中,一个存放在40H~43H单元请编程求他们的和,结果存放在30H~33H单元中。