指令系统与汇编语言
- 格式:pdf
- 大小:449.70 KB
- 文档页数:38
第三章MCS51单片机的指令系统和汇编语言程序示例(第5、6、7节)1.试分析单片机执行下列指令后累加器A和PSW中各标志位的变化状况?(1)MOV A,#19HADD A,#66H(2)MOV A,#5AHADD A,#6BH2.已知:A=85H,R0=30H,(30H)=11H, (31H)=0FFH,C=1,试计算单片机执行下列指令后累加器A和C中的值各是多少?(1)ADDC A,R0, (2)ADDC A,31H(3) ADDC A,@R0, (4) ADDC A,#85H3.已知M1和M2中分别存放两个16位无符号数的低8位,M1+1和M2+1中分别存放两个16位无符号数的高8位,计算两数之和(低8位存放在M1,高8位存放在M1+1,设两数之和不超过16位)。
4.试分析单片机执行下列指令后累加器A和PSW中各标志位的变化状况?CLR CMOV A,#52HSUBB A,#0B4H5.已知:A=0DFH,R1=40H,R7=19H,(30H)=00H,(40H)=0FFH,试分析单片机执行下列指令后累加器A和PSW中各标志位的变化状况?(1) DEC A (2) DEC R7 (3) DEC 30H (4) DEC @R16.试写出能完成85+59的BCD加法程序,并对工作过程进行分析。
7.已知:两个8位无符号乘数分别放在30H和31H单元中,编程实现他们乘积的低8位存放在32H,高8位存放在33H。
8.已知:R0=30H,(30H)=0AAH,试分析执行下列指令后累加器A和30H单元的内容是什么?(1)MOV A, #0FFH ANL A, R0(2)MOV A, #0FH ANL A, 30H(3)MOV A, #0F0H ANL A, @R0(4)MOV A, #80H ANL 30H, A9.设:A=0AAH和P1=0FFH,试编程把累加器A的低四位送入P1口的低四位,P1口的高四位保持不变。
3·1 汇编指令第3 章MCS 一51 系列单片机的指令系统和汇编语言程序3·1·1 请说明机器语言、汇编语言、高级语言三者的主要区分,进一步说明为什么这三种语言缺一不行。
3·1·2 请总结:(1)汇编语言程序的优缺点和适用场合。
(2)学习微机原理课程时,为什么肯定要学汇编语言程序?3·1·3MCS 一51 系列单片机的寻址方式有哪儿种?请列表分析各种寻址方式的访问对象与寻址范围。
3·1·4 要访问片内RAM,可有哪几种寻址方式?3·1·5 要访问片外RAM,有哪几种寻址方式?3·1·6 要访问ROM,又有哪几种寻址方式?3·1·7 试按寻址方式对MCS 一51 系列单片机的各指令重进展归类(一般依据源操作数寻址方式归类,程序转移类指令例外)。
3·1·8 试分别针对51 子系列与52 子系列,说明MOV A,direct 指令与MOV A,@Rj 指令的访问范围。
3·1·9 传送类指令中哪几个小类是访问RAM 的?哪几个小类是访问ROM 的?为什么访问ROM 的指令那么少?CPU 访问ROM 多不多?什么时候需要访问ROM?3·1·10 试绘图示明MCS 一51 系列单片机数据传送类指令可满足的各种传送关系。
3·1·11 请选用指令,分别到达以下操作: (1)将累加器内容送工作存放器R6.(2)将累加器内容送片内RAM 的7BH 单元。
(3)将累加器内容送片外RAM 的7BH 单元。
(4)将累加器内容送片外RAM 的007BH 单元。
(5)将ROM007BH 单元内容送累加器。
3·1·12 区分以下指令的不同功能:(l)MOV A,#24H 与MOV A.24H(2)MOV A,R0 与MOV A,@R0(3)MOV A,@R0 与MOVX A,@R03·1·13 设片内RAM 30H 单元的内容为40H;片内RAM 40H 单元的内容为l0H;片内RAM l0H 单元的内容为00H;(Pl)=0CAH。
第三章MCS51单片机的指令系统和汇编语言程序示例(第5、6、7节)1.试分析单片机执行下列指令后累加器A和PSW中各标志位的变化状况?(1)MOV A,#19HADD A,#66H(2)MOV A,#5AHADD A,#6BH2.已知:A=85H,R0=30H,(30H)=11H, (31H)=0FFH,C=1,试计算单片机执行下列指令后累加器A和C中的值各是多少?(1)ADDC A,R0, (2)ADDC A,31H(3) ADDC A,@R0, (4) ADDC A,#85H3.已知M1和M2中分别存放两个16位无符号数的低8位,M1+1和M2+1中分别存放两个16位无符号数的高8位,计算两数之和(低8位存放在M1,高8位存放在M1+1,设两数之和不超过16位)。
4.试分析单片机执行下列指令后累加器A和PSW中各标志位的变化状况?CLR CMOV A,#52HSUBB A,#0B4H5.已知:A=0DFH,R1=40H,R7=19H,(30H)=00H,(40H)=0FFH,试分析单片机执行下列指令后累加器A和PSW中各标志位的变化状况?(1) DEC A (2) DEC R7 (3) DEC 30H (4) DEC @R16.试写出能完成85+59的BCD加法程序,并对工作过程进行分析。
7.已知:两个8位无符号乘数分别放在30H和31H单元中,编程实现他们乘积的低8位存放在32H,高8位存放在33H。
8.已知:R0=30H,(30H)=0AAH,试分析执行下列指令后累加器A和30H单元的内容是什么?(1)MOV A, #0FFH ANL A, R0(2)MOV A, #0FH ANL A, 30H(3)MOV A, #0F0H ANL A, @R0(4)MOV A, #80H ANL 30H, A9.设:A=0AAH和P1=0FFH,试编程把累加器A的低四位送入P1口的低四位,P1口的高四位保持不变。
MIPS指令系统和汇编语言MIPS(Microprocessor without Interlocked Pipeline Stages)指令系统,是一种以RISC(Reduced Instruction Set Computer,精简指令集计算机)为基础的处理器架构。
作为一种广泛应用于嵌入式系统和计算机组成的指令集架构,MIPS指令系统以其简洁高效的特性而受到广泛关注和应用。
一、MIPS指令系统概述MIPS指令系统的设计目标之一是提高处理器的性能,并降低设计的复杂性。
它采用了统一的指令格式,包括操作码、源操作数以及目的操作数等字段,使得指令的译码和执行过程更加高效。
此外,MIPS的指令集还支持延迟槽、流水线和分支延迟等特性,以进一步提升指令执行的效率。
二、MIPS指令格式MIPS指令格式遵循统一的规则,包括三种基本类型的指令格式:R 型、I型和J型指令。
R型指令主要用于寄存器之间的操作,包括算术运算、逻辑运算等;I型指令用于立即数和寄存器之间的操作,涵盖了数据传输、分支跳转等功能;J型指令主要用于无条件跳转。
三、MIPS指令编码和寻址方式MIPS指令采用固定长度的指令编码格式,使得指令的解析和处理更加高效。
在寻址方面,MIPS支持多种寻址方式,包括立即寻址、寄存器寻址和间接寻址等。
这些灵活的寻址方式使得MIPS指令更加适用于不同的计算需求。
四、MIPS汇编语言MIPS汇编语言是一种用于编写MIPS指令的低级语言。
它是一种基于文本的表示形式,使用助记符来表示不同的指令和操作。
MIPS汇编语言具有简单易学的特性,更加接近底层硬件的工作原理,使得程序员可以更加精准地控制和优化程序的执行过程。
五、MIPS指令系统的应用由于MIPS指令系统的优越性能和灵活性,它被广泛应用于各种领域。
在嵌入式系统中,MIPS处理器可以实现高性能和低功耗的设计,广泛应用于智能手机、路由器、电视机等设备中。
在计算机组成和操作系统领域,MIPS指令系统被用于讲解和研究计算机的工作原理和底层机制。
第二章PIC单片机指令系统和汇编语言程序设计2.1 指令系统概述2.1.1 指令的表示方法1.机器指令的表示方法:指令用于规定计算机的基本操作。
一台计算机所能执行的指令集合就是它的指令系统。
指令共有两种表示方法,分别是机器语言表示方法和汇编语言表示方法。
不同种类的单片机有不同的一套命令(即所谓“指令系统”)。
2.汇编语言的表示方法:汇编语言是对机器语言的改进,它采用便于人们记忆的一些符号(例如简化的英文单词)来表示操作码、操作数和地址码等。
通常把表示指令的符号称之为助记符。
3.PIC16F87X单片机指令:PIC16F87X单片机采用精简指令集(RISC)结构,指令效率高,功能强。
它的指令为单字的宽字位(14)指令,由此生成的程序代码短。
指令条数少,仅有35条。
(1)面向字节操作类(2)面向位操作类(3)常数操作和控制类操作。
2.1.2PIC单片机指令的寻址方式1.寄存器间接寻址:所谓寄存器间接寻址指的是通过寄存器F0、F4来实现。
实际的寄存器地址放在F4的低5位中,通过F0来进行间接寻址。
INDF不是物理上实际存在的寄存器,而任何寻址INDF的指令都是以FSR寄存器内容为地址的RAM单元中存放着参加运算或操作的数据。
2.立即数寻址:所谓立即寻址就是操作数在指令中直接给出。
通常把出现在指令中的操作数称之为立即数,因此就把这种寻址方式称之为立即寻址。
3.直接寻址:指令中操作数以其所在存储单元地址的形式给出,就称之为直接寻址。
这种方式是对任何一寄存器直接寻址访问。
4.位寻址:这种寻址方式是对寄存器中的任一位(bit)进行操作。
2.1.3指令符号的意义说明1.PIC汇编语言指令格式PIC系列微控制器汇编语言指令与MCS-51系列单片机汇编语言一样,每条汇编语言指令由4个部分组成,其书写格式如下:标号操作码助记符操作数1,操作数2;注释2.指令符号的意义说明:在PIC系列单片机指令中常把数据存储器RAM当作寄存器来使用(处理)并用字母f(或F)表示。
第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,指出下列指令的本质区别。
第2章指令系统及汇编语言程序设计一.选择题1.(D) 2.(A) 3.(C) 4.(D) 5.(A) 6.(D)7.(C) 8.(C) 9.(C) 10.(D) 11.(D) 12.(C)13.(C) 14.(A) 15.(A) 16.(D) 17.(B) 18.(C)19.(C) 20.(C) 21.(D) 22.(D) 23.(D) 24.(C)25.(A) 26.(A) 27.(B) 28.(C) 29.(B) 30.(D)31.(B) 32.(C) 33.(C) 34.(A) 35.(C) 36.(D)37.(D) 38.(A) 39.(B) 40.(C) 41.(D) 42.(D)43.(B) 44.(C) 45.(C) 46.(B) 47.(B) 48.(D)49.(A) 50.(B) 51.(A) 52.(C)二、判断题1.× 2.× 3.× 4.√ 5.√ 6.√ 7.×8.× 9.×10.√ 11.× 12.× 13.× 14.× 15.× 16.√17.√18.√19.× 20.× 21.× 22.√ 23.× 24.√ 25.√26.√三、填空题1.53F30H2. 0 ; 0; 0; 13.操作码;操作数4. ZF=05.SS6. 1234H,0FFEH7.立即四、阅读程序1.38(或26H)2.将以10100H起始的50个单元的内容传送至以10200H起始的50个单元中3.将数据段中以2000H起始的100个单元中的内容清零4.统计以BUFFER为首址的100个单元中数字为1的个数存入ARRAY单元5.统计N字中0的个数6.将N的内容拆为两部分分别存入BH,BL中7.AX=0008H8.AL=34H9.AX=23H10.AX=0004H11.AX=0055H12.将从键盘接受到的两个字符拼在一起13.BH=0FFH,BL=0EH14.AX=000FH15.AL=15H,AF=1,BL=0FH16.90H17.向屏幕上依次输出0,1,…。
MIPS指令系统和汇编语⾔第四章MIPS指令系统和汇编语⾔1.考研预测:出题特点总结本章是对统考408内容来说,本章是新增的章节。
此外北航961⼤纲中制定了要考MIPS 指令集,从15年961真题来看MIPS是重中之重。
但是今年计组并没有指定具体的教材,但⼤纲明确要求掌握MIPS指令集,所以还是建议考⽣将《计算机组成与设计:硬件/软件接⼝》中⽂版(原版第三版或第四版)作为本章的参考书籍。
本章⼤致内容是MIPS的基础知识,难度并不⼤。
考⽣应该将重点放在MIPS指令集的基础上,考察C语⾔中的语句转换为对应的MIPS指令,所以需要熟练掌握C语⾔中⼀些语句对应的MIPS指令实现。
本章出题很⼤可能就是C语⾔和MIPS汇编语⾔之间的转换,也可能涉及到第五章CPU指令流⽔线等内容。
2.考研知识点系统整理:梳理考点,各个击破3.1 指令系统概述机器指令要素操作码:指明进⾏的何种操作源操作数地址:参加操作的操作数的地址,可能有多个。
⽬的操作数地址:保存操作结果的地址。
下条指令的地址:指明下⼀条要运⾏的指令的位置,⼀般指令是按顺序依次执⾏的,所以绝⼤多数指令中并不显式的指明下⼀条指令的地址,也就是说,指令格式中并不包含这部分信息。
只有少数指令需要显⽰指明下⼀条指令的地址。
指令执⾏周期3.2 指令格式⼀台计算机指令格式的选择和确定要涉及多⽅⾯的因素,如指令长度、地址码结构以及操作码结构等,是⼀个很复杂的问题,它与计算机系统结构、数据表⽰⽅法、指令功能设计等都密切相关。
指令的基本格式⼀条指令就是机器语⾔的⼀个语句,它是⼀组有意义的⼆进制代码,指令的基本格式如下:(其中A1为第⼀操作数地址,A2为第⼆操作数地址,A3为操作结果存放地址。
这条指令的含义:(A1)OP(A2)→A3式中OP表⽰双操作数运算指令的运算符号,如“+”或“–”等。
(2)⼆地址指令如果让第⼀操作数地址同时兼作存放结果的地址(⽬的地址),这样即得到了⼆地址指令,其格式为:其中A1为⽬的操作数地址,A2为源操作数地址。
第4章 指令系统与汇编语言本章讨论的内容主要包括:
�指令格式
�寻址方式
�PC指令系统
�汇编语言程序设计
�CISC与RISC
4.1 指令格式
4.1.1 概述
�机器指令与 指令系统
�计算机的性能与它所设置的指令系统有很大的关系,而指令系统的设置又与机器的结构密切相关�计算机软件、硬件的界面之一
�指令系统的发展
�CISC ( Complex Instruction Set Computer )
复杂指令系统计算机
�RISC ( Reduced Instruction Set Computer )
精简指令系统计算机
�设置指令系统的要求
�完备性、有效性、规整性、兼容性
4.1.2 指令格式的描述
1. 指令信息
4.1.3 指令设计
1. 指令长度的影响因素
�内存大小与组织
� CPU数据总线宽度
� CPU内部寄存器的数量
�寻址方式
�指令数量
2. 指令长度与字长的关系
�字长
�指令长度
� 定长操作码,变长指令码
� 变长操作码,定长指令码
�指令长度与字长的关系
� 短格式指令
� 长格式指令
3. 哈夫曼( Huffman)编码
� 编码原理:使用频率高的指令采用短操作码
解决方法之一:指令操作码的扩展技术
•这只是其中一种扩展方法,还有其他多种扩展方法。
•操作码扩展技术是一种重要的指令优化技术,可以缩短指令平均长度,减少程序总位数和增加指令字所能表示的操作信息。
•一般用在指令字长较短的微、小型机上。
数据寄存器
1) 数据寄存器
1)
有4个16位的数据寄存器,可以存放16位的操作数。
指针寄存器
2) 指针寄存器
2)
有两个:SP和BP。
�SP是堆栈指针寄存器,由它和堆栈段寄存器一起来确定堆栈在内存中的位置。
�BP是基数指针寄存器,通常用于存放基地址,以使8088的寻址更加灵活。
变址寄存器
3)
3) 变址寄存器
SI是源变址寄存器
DI是目的变址寄存器,都用于指令的变址寻址。
3. 存贮器寻址
由段寄存器、段偏移地址确定物理地址: 物理地址物理地址 = = 段寄存器的内容段寄存器的内容段寄存器的内容××16 + 16 + 偏移地址
偏移地址
4.2.1 8088CPU的寻址方式
1. 操作数的寻址方式
8086/8088指令中说明操作数所在地址的寻址方式有以下8种。
(1)立即寻址
立即寻址方式所提供的操作数直接包含在指令中。
它紧跟在操作码的后面,与操作码一起放在代码段区域中。
(2)直接寻址
直接寻址是指操作数地址的16位段内偏移地
址直接包含在指令中,它与操作码一起存放在代
码段区域。
操作数一般在数据段区域中,它的地
址为数据段寄存器DS加上这16位的段内偏移地址。
例: MOV AX, [2000H]
(4)寄存器间接寻址
在寄存器间接寻址方式中,操作数存放在存贮器中,操作数的16位段内偏移地址放在SI、DI、BP、BX这4个寄存器中之一。
由于上述4个寄存器所默认的段寄存器不同,这样又可以分成两种情况:
①若以SI、DI、BX进行间接寻址,则操作数通常存放在现行数据段中。
②若以寄存器BP间接寻址,则操作数存放在堆栈段区域中。
(5)寄存器相对寻址
在寄存器相对寻址方式中,操作数存放在存贮器中。
操作数的地址是由段寄存器内容加上SI、DI、BX、BP之一的内容,再加上由指令中所指
出的8位或16位相对地址偏移量而得到的。
在一般情况下,若用SI、DI或BX进行相对寻址时,以数据段寄存器DS作为地址基准,而用BP 寻址时,则以堆栈段寄存器SS作为地址基准。
例:MOV AX,DISP[SI]
(6)基址、变址寻址
在8086/8088中,通常把BX和BP作为基址寄存器,而把SI、DI作为变址寄存器。
将这两种寄存器联合起来进行的寻址就称为基址、变址寻址。
这时,操作数的地址应该是段寄存器内容加上基址寄存器内容(BX或BP内容),再加上变址寄存器内容(SI或DI内容)而得到的。
同理,若用BX作为基地址,则操作数应放在数据段DS区域中;若用BP作为基地址,则操作数应放在堆栈段SS区域中。
例:MOVAX,[BX][S1]
其过程如图所示
(7)基址、变址、相对寻址
基址、变址、相对寻址方式实际上是第6种寻址方式的扩充。
即操作数的地址是由基址、变址方式得到的地址再加上由指令指明的8位或16位的相对偏移地址而得到的。
例:MOV AX,DISP[BX][S1]
其过程如图所示
(8)隐含寻址
在有些指令的指令码中,不仅包含有操作码信息,而且还隐含了操作数地址的信息。
例如乘法指令MUL的指令码中只需指明一个乘数的地址,另一个乘数和积的地址是隐含固定的。
这种将操作数的地址隐含在指令操作码中的寻址方式称为隐含寻址。
2. 转移地址的寻址方式
(1)段内转移
�段内直接(相对)转移
�段内间接转移
(2)段间转移
�段间直接转移
�段间间接转移
4.3 指令系统 ---- 以 X86 汇编指令为例
� 数据传送指令
� 算术运算指令
� 逻辑运算和移位指令
� 串操作指令
� 程序控制指令
� 处理器控制指令
� 输入输出指令
� 操作数可以为上述源、目的寻址方式的任意搭配,但4种情况除外。
• 目的操作数不能为立即数,或 CS、IP;
• 内存单元之间不能进行数据直接传送;
• 立即数不能直接传送到段寄存器中;
• 段寄存器之间的不能进行数据直接传送;
2. 堆栈指令
格式: PUSH OPRD
; r、 mem、 SEG(含CS),以字为单位 POP OPRD
; r、 mem、 SEG(除CS),以字为单位。