03章指令系统与汇编语言程序设计
第3章 8086指令系统-汇编语言程序设计教程-陆遥-清华大学出版社

直接寻址方式可以利用变量名的偏移地址属性来 描述操作数的偏移地址(可直接用变量名,或将 变量名置于方括号[ ]中),段寄存器默认为DS。 如果实际使用的段寄存器不是DS,则必须用段 前缀明确指出。
【例3.7】设数据段内有如下变量定义语句
VAR DB 76H,5CH,0A3H,08H
分析以下指令的执行结果。
3.1 指令系统基本概念
指令是给计算机下达的一个简单操作任务,CPU 所能执行的所有指令构成了一个计算机的指令系 统(也称指令集)。
汇编语言指令是对机器指令的符号化表示,采用 助记符来表示指令的操作功能和操作对象。
指令通常可以分为以下几类:
⑴ 数据传送类指令。 ⑵ 算术运算类指令。
⑸ 程序控制类指令。 ⑹ 处理器控制类指令。
【例3.3】要求将数据68传送给AL寄存器,写出相应的传 送指令。 分析:由于AL寄存器接收数据,所以目的操作数为AL, 采用寄存器寻址方式,而源操作数为常数68,采用立即寻 址方式
MOV AL,68 ;AL←68
【例3.4】设被加数存于寄存器DX中,加数为512,写出相 应的加法指令。 分析:因为被加数由寄存器DX提供,所以DX为目的操作 数,采用寄存器寻址方式,而加数为常数512,采用立即 寻址方式
操作数。
2. ADD指令
指令格式:ADD DST,SRC 指令功能:DST←(DST)+(SRC) 。执行加法运算。 操作数特点:两个操作数。被加数DST为目的操作数,加
数SRC为源操作数。
3. NOT指令
指令格式:NOT OPR 指令功能:OPR←(OPR) 。执行逻辑非运算。 操作数特点:一个操作数。OPR既是目的操作数,也是源
段地址由段寄存器提供,用段前缀(DS:,ES:, CS:或SS:)来指明;偏移地址(亦称有效地址) 则有多种表示形式,由此形成了不同的存储器寻 址方式。
第3章汇编指令.ppt

这两条指令均表示程序在当前位置处原地“踏步”。
5、“ * ”处于汇编语句中的第一列时,表示该行 为注释语句。 “ ;”之后的内容为注释。如:
*为日后的阅读提供方便而加注释* LDA #$5A ;传数指令
§3.1 M68HC08汇编语言的相关约定
6、M68HC08指令系统中的操作数多数为8位,但可 以通过在字节数前面加“>”的方法将其扩展为16位。
TAX ;A→X TXA ;X→A
§3.2 M68HC08寻址方式
3.2.2 立即寻址方式(IMM) 立即寻址方式中,操作数包含在操作码的后继字符 中,立即寻址指令多为2个字节,第一字节为操作码, 第二字节为操作数。 LDA #%01011010 ;%01011010→A ADD #$30 ; (A+$30)→A ADC #$30 ; (A+$30+C)→A AND #$FF ; (A∧$FF)→A LDHX #$8030 ;$8030→H:X中,80→H,30→X
移一位。
§3.2 M68HC08寻址方式
3.2.7 堆栈寻址方式
(2) 16偏移量堆栈寻址
LDA $0110,SP ; (SP+0110H)→A
ADD $0120,SP AND $0130,SP
; A+(SP+0120H)→A ; A∧(SP+0123H)→A
§3.2 M68HC08寻址方式
3.2.8 存储器到存储器寻址 指令格式:MOV 源操作数地址,目的操作数地址 (1)立即寻址到直接寻址(IMD)
LDA $0110,X ; (H:X+$0110)→A INC $0110,X ;(H:X+$0110)+1→(H:X+$0110) 变址寻址方式中三种方式都可以访问64K字节空间, 但汇编后的指令有长短,速度有快慢。无偏移量指 令最短,速度最快,扩展寻址方式指令最长,速度 最慢。
第三章MCS51系列单片机指令系统及汇编语言程序设计

SJMP rel ;PC+ 2 + rel→PC 短转移指令为一页地址范围内的相对转移指令。因为rel为1字节补码 偏移量,且SJMP rel指令为2字节指令,所以转移范围为-126D~+ 129D 【4】间接转移指令
表3.4 程序存储器空间中的32个基本2K地址范围
0000H~07FFH 0800H~0FFFH 1000H~17FFH 1800H~1FFFH 2000H~27FFH 2800H~2FFFH 3000H~37FFH 3800H~3FFFH 4000H~47FFH 4800H~4FFFH 5000H~57FFH
3. 寄存器寻址
以通用寄存器的内容为操作数的寻址方式。通用寄存 器包括:A,B,DPTR,R0~R7。其中,R0~R7必须在 工作寄存器组之中。
例如:INC R0 ;(R0)+1→R0
需要注意的是,A和B既是通用寄存器,又是具有直 接地址的特殊功能寄存器。
4. 寄存器间接寻址
以寄存器中的内容为地址,该地址中的内容为操作数的寻址方式。能够 用于寄存器间接寻址的寄存器有:R0,R1,DPTR,SP。其中,R0,R1必 须在工作寄存器组之中,SP仅用于堆栈操作。
MCS-51单片机共有111条指令,按功能分类, MCS-51指令系统可分为5大类:
➢ 数据传送类指令(共29条) ➢ 算术操作类指令(共24条) ➢ 逻辑操作类指令(共24条) ➢ 控制转移类指令(共17条) ➢ 布尔变量操作类指令(共17条)
1.数据传送类指令(共29条)
以累加器A为目的操作数类指令(4条)
单片机原理与应用-基于AT89S51+Proteus仿真 第2版 第3章 指令系统与汇编语言程序设计

3. 编写程序较为复杂 汇编语言要安排运算的每一个细节
4. 汇编语言用到大量的各类转移指令,这些跳转指 令加大了调试的难度
使用领域:
第3章 指令系统与汇编语言程序设计
要求执行效率高,反应快的领域 如:操作系统内核,实时系统
与硬件资源密切相关的软件开发 如:设备驱动程序
受存储容量限制的应用领域 如:家用电器的计算机控制功能
没有适当的高级语言开发环境
不宜使用的领域: 大型软件的整体开发
第3章 指令系统与汇编语言程序设计
汇编语言(Assembly Language)——用助记(字)符代替操 作码,用地址符号代替地址码的一种面向机器的程序 设计语言;
汇编语言特点——代码精炼、执行速度快,但不便于编写 较复杂的程序;
汇编程序处理过程——输入源程序→检查语法正确性(如有 语法错误,输出错误信息)→翻译成二进制目标程序。
单片机原理与应用
第3章 指令系统与汇编语言程序设计
第3章 单片机的工作就是执行程序,而程序是指令的有序集 合。汇编语言是最基本的编程方式,而C语言则是单 片机程序开发的主流。对于应用C语言程序开发的读 者来说,了解单片机的指令系统和汇编语言也是十分 必要的。本章主要介绍AT89S51单片机的指令系统与 汇编语言程序设计。 学习目标: 掌握51单片机指令系统与汇编语言程序的基本概念。 了解51单片机汇编指令的分类、语法规则、功能及程 序用法。 了解汇编语言程序设计步骤及编程方法。
;若A≠R0,转START ; A + 10H →A ; A←0 ;子程序返回
第3章 指令系统与汇编语言程序设计
[标号:] 操作码 [操作数] [;注释]
➢ 注释是对指令的解释性说明,用以提高程序的可读 性; ➢ 可用任何文字或符号描述,可以省略; ➢ 由(英文)分号开始,无需结束符号。
微机原理与接口技术第3章(指令部分)

例:编程计算 0+1+2+3+4+ -----10 编程计算
MOV AL,0 , MOV BL,1 , MOV CL,10 NEXT:ADD AL,BL , INC BL DEC CL JNZ NEXT ;CL≠0 转 ≠ HLT
1
3.1 概述 一、指令包含的基本内容
12
(3)相对寻址
例: MOV AX, [SI+100H]
;结果 : 结果 AX (DS×16+SI+100H) ×
例:MOV AL,[BP+DATA] MOV AL, DATA[BP] ; DATA是符号表示的位移量。 表示的位移量 是符号表示的位移量。
结果 : AL (SS×16+BP+DATA) ×
11
(2)间接寻址 例:MOV AX,[BX] , •结果 : AX 结果 (DS×16+BX) ×
...
3000H:0000H : • EA= BX /SI /DI , 物理地址=DS*16+EA 物理地址 • EA= BP 物理地址=SS*16+EA 物理地址 :1234H :50H :1235H :30H
1. 做什么操作? 做什么操作? MOV ,ADD, OR,CMP等助记符 等助记符
2. 操作的数据是什么? ①CPU内的寄存器; 操作的数据是什么? 内的寄存器 内的寄存器; 内存的某一个或几个单元 单元; ②内存的某一个或几个单元; 结果放在那里? 3. 结果放在那里? 立即数。 ③立即数。 端口; 端口 ④I/O端口; 下一条指令在哪里? 4. 下一条指令在哪里? IP←IP+1
第3章_MCS-51单片机指令系统及汇编语言程序设计2

3. 汇编语言的语句格式是什么?使用标号有什么限制?注释段起什么作用? 答案: MCS-51汇编语言的语句格式应符合下列结构: 【标号:】 操作码 【操作数】【;注释】 标号位于语句的开始,由以字母开头的字母和数字组成,它代表该语句的地址。 标号与操作码之间要用“:”隔开,标号与“:”之间不能有空格,“:”与操 作码之间可以有空格。 注释在语句的最后,以“;”开始,是说明性的文字,与语句的具体功能无关。 4. MCS-51汇编语言有哪几条常用伪指令?各起什么作用? 答案: ORG:汇编程序起始地址,用来说明其后程序段在存储器中存放的起始地址; EQU:赋值指令,用来给变量标号赋予一个确定的数值; DB:定义数据字节,指令按字节数的形式把数据存放在存储单元中; DW:定义数据字,按字(双字节)的形式把数据存放在存储单元中; DS:定义存储区,从指定的地址单元开始,保留一定数量的存储单元; BIT:位定义,其功能是把位地址赋给字符名称; END:汇编结束,表明汇编语言程序结束。
2.顺序程序
顺序程序是指程序中没有使用转移类指令的程序段,机器执行这 类程序时也只需按照先后顺序依次执行,中间不会有任何分支、循环, 也不需要调用子程序。 例:将一个单字节十六进制数转换成BCD码。 解:算法分析。单字节十六进制数在0~255之间,将其除以100后, 商为百位数;余数除以10,商为十位数,余数为个位数。 设单字节数存放在40H,转换后,百位数存放在R0中,十位数存 放在R1中,个位数存放在R2中,具体程序如下: ORG 0030H MOV A, 40H ;将单字节十六进制数送入A中 MOV B,#64H ;将100送入B中, #64H可直接写成#100 DIV AB MOV R0,A ;百位数送R0,余数在B中 XCH A,B ;余数送入A中 MOV B,#0AH ;将10送入B中, #0AH可直接写成#10 DIV AB ;商为十位数,余数为个位数 MOV R1,A MOV R2,B SJMP $
单片机原理与应用徐爱钧答案

单片机原理与应用徐爱钧答案【篇一:单片机原理实用教程基于proteus虚拟仿真】p class=txt>【作者】徐爱钧编著【isbn】978-7-121-07543-8【出版社】电子工业出版社【出版日期】2009年1月【内容简介】本书系统地阐述了基于proteus虚拟仿真技术的8051单片机原理与接口技术,详细论述了在proteus软件平台上进行单片机应用系统设计的原理与方法,介绍了8051单片机的基本结构、中断系统、定时器以及串行口的工作原理、8051指令系统与汇编语言程序设计、dac与adc接口技术、键盘与显示器接口技术,并以实例方式介绍了在proteus平台上进行单片机应用系统虚拟仿真设计的方法,给出了大量在proteus集成环境isis中绘制的原理电路图和仿真程序,并提供一张包含全部应用实例的配套光盘,其中所有实例均可在proteus软件平台上直接运行。
本书可作为高等院校工业自动化、电子测量仪器、计算机应用等相关专业单片机原理与应用课程的教学用书,也可作为广大从事单片机应用系统开发的工程技术人员的参考书。
【宣传语】用多个实例讲述在proteus平台上设计单片机应用系统的方法,并提供原理电路图和仿真程序【前言】单片机是现代电子技术的新兴领域,它的出现极大地推动了电子工业的发展,已成为电子系统设计中最为普遍的应用手段。
近年来单片机技术得到了突飞猛进的发展,各种单片机开发工具层出不穷。
虚拟仿真就是近年来兴起的一种新型应用技术,采用虚拟仿真技术,在原理图设计阶段就可以对单片机应用设计进行评估,验证所设计电路是否达到所要求的技术指标,还可以通过改变元器件参数使整个电路性能达到最优化。
这样就无须多次购买元器件及制作印刷电路板,节省了设计时间与经费,提高了设计效率与质量。
英国labcenter公司推出的proteus软件是一款极好的单片机应用开发平台,它以其特有的虚拟仿真技术很好地解决了单片机及其外围电路的设计和协同仿真问题,可以在没有单片机实际硬件的条件下,利用pc以虚拟仿真方式实现单片机系统的软、硬件同步仿真调试,使单片机应用系统设计变得简单容易。
〈微型计算机原理及应用〉自学指导书(本)解析

自学指导资料微型计算机原理及接口技术《机械设计制造及其自动化》专业《热能与动力工程》专业《电气工程及其自动化》专业等层次:专升本、高起本西安理工大学继续教育学院二00八年九月《微型计算机原理及接口技术》自学指导书编写者:田敬民自学总学时:100学时适用专业:《机械设计制造及其自动化》(专升本) 《热能与动力工程》(专升本) 《测控技术与仪器》(专升本) 《计算机科学与技术》(专升本)《电气工程及其自动化》(高起本) 《计算机科学与技术》(高起本)《机械设计制造及其自动化》(高起本)一、学习目的和要求:“微型计算机及其接口技术”是一门重要的专业基础课,侧重于微型计算机的基本原理和工程实践.通过本课程的学习,使学生具有微型计算机应用系统的分析能力和初步设计能力。
本课程以介绍硬件知识为主,但在构成一个微型计算机应用系统时,还必须具有用汇编语言源程序的读写能力.读写汇编语言编写的应用程序是本课程的主要内容之一,是与硬件电路工作密切相关的不可分割的部分。
理论指导实践是本课程的重要特点。
二、学习方法:1.阅读教材前,应先了解本章内容要求及重点难点,做成心中有数,有的放矢。
2.阅读教材时逐段细读,集中精力,吃透每个知识点,深刻理解基本概念和基本理论,对基本方法和基本技能必须牢固掌握,阅读中遇到个别问题,可暂时搁置,留待面授时解决。
3.在学完一章后,应认真完成教材中的有关思考题和习题,这是帮助学生理解,消化和巩固新学知识培养分析问题,解决问题能力的重要环节。
作业题必须按时完成,作为考核成绩的依据。
4.根据教学计划规定,本课程安排中集中面授,面授内容主要是本课程的重点难点,解答学生学习中的问题.5.本课程为考试课程,课程结束后进行考试.三、学习进度表:章次课程内容自学学时(H) 面授学时(H)1 计算机基础知识(预备知识) 4 22 微型计算机概述8 43 指令系统及汇编语言程序设计30 64 半导体存储器8 25 输入/输出技术12 46 常用的输入/输出接口方法38 4合计100 22四、各章节内容重点、难点和作业题、思考题第一章 (预备知识)计算机基础知识1.内容:各种进位计数制及编码计算机中,无符号数和有符号数表示方法:原码反码补码2.重点:各种进位计数制的相互转换、数的原码、反码、补码表示3.难点:补码概念及数的变补方法作业题:教材P.14.习题:1.1, 1.2, 1.3, 1.4, 1.9, 1.10, 1.11, 1.12, 1.17第二章微型计算机概述1.内容:微处理器和微型计算机:微型计算机系统的总线结构,8088 / 8086 CPU结构及引脚功能:系统总线形成及时序2.重点:8088(8088)微处理器内部结构,引脚信号和总线时序3.难点:引脚信号和总线时序,即三总线信号在典型的总线周期中出现的时间关系即时序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
TSX
将寄存器SP中内容送入寄存器X
(SP)→X
TSY
将寄存器SP中内容送入寄存器Y
(SP)→Y
TXS
将寄存器X中内容送入寄存器SP
(X)→SP
TYS
将寄存器Y中内容送入寄存器SP
(Y)→SP
TPA
将寄存器CCR中内容送人寄存器A
(CCR)→A
TAP
将寄存器A中内容送人寄存器CCR
(A)→CCR
• 注意:TAB、TBA影响标志位,TFR不 影响标志位;
• 实际只有上述3条指令,其余写法是为 • 例:
了兼容老版本MCU
• TAB
• 8位到16位:通过符号位扩展后传送 • TFR A, Y
• 16位到8位:舍弃高8位,只传送低8位 • TAP ( 相当于 TFR A, CCR)
重庆大学通信工程学院 任勇、王永东
4、寄存器交换指令: Exchange
第3 指令系统与汇编语言程序设计
兼容以前的S12 CPU 丰富、强大、灵活,高速16位处理,共400多条 按功能:数据传送、算术运算、逻辑运算、位操作、移位、控制、特殊等, 寻址方式多。
3.1 CPU内部寄存器 区别于I/O寄存器;
6个16bit: D(A+B), X, Y, SP, PC, CCR
LDAA #$1F LDAB $40B0 LDD 2,X LDY 2,SP+
操作 (M)→A (M)→B (M:M+1)→(A:B) (M:M+1)→SPH:SPL (M:M+1)→XH:XL (M:M+1)→YH:YL
重庆大学通信工程学院 任勇、王永东
2、寄存器存储指令:STore(影响标志位)
(3)直接寻址(DIR)
如 LDAA $55 (8位地址)
(4)扩展寻址(EXT)
如 LDAA $200A (16位地址)
(5)相对寻址(REL)
SHIFT: LDAA #$55
BRA SHIFT (相对地址跳转)
重庆大学通信工程学院 任勇、王永东
(6)变址寻址(IDX)
特征:以变址寄存器X、Y、SP、PC的内容为基址,再加或减个值,构 成最终的地址
……
重庆大学通信工程学院 任勇、王永东
3.3.1 数据传送类指令
1、寄存器加载指令: LoaD (注:影响标志Байду номын сангаас)
助记符 LDAA LDAB LDD LDS LDX LDY
功能 将数据载入寄存器A 将数据载入寄存器B 将数据载入寄存器D 将数据载入寄存器SP 将数据载入变址寄存器X 将数据载入变址寄存器Y
如 LDAA [1000,X]
;((1000+X))A
JMP [D,PC]
;((D+PC))PC
变址寻址---重要而常用,表象:指令操作码后的操作数是X,Y,SP,PC (指针)
重庆大学通信工程学院 任勇、王永东
3.3 指令概览 分类(表3-1): ➢ 数据传送指令 ➢ 算数运算指令 ➢ 逻辑指令 ➢ 程序控制指令 ➢ 中断指令 ➢ CPU控制指令 ➢ 其它指令
➢ 5位/9位/16位常数偏移量的变址寻址
如 LDD 6,X
;(6+X)D(A), (6+X+1)D(B)
LDAB $FF,Y
;($FF+Y)B
LDAA $7200,PC
;($7200+PC)A
(7)累加器变址寻址(IDX)
➢ 累加器内容做偏移量的变址寻址
如 LDAA B,X
;(B+X)A
LDAA D,Y
;(D+Y)A
(8)自加自减的变址寻址(IDX)
➢ 自动加减(1~8),先加、先减、后加、后减
如 STAA 1,-X
;X-1X,A(X)
STAA 1,-SP
;SP-1SP, A(SP)
(等效PSHA)
LDX 2,SP+
;(SP)X, SP+2SP
(等效PULX)
(9)间接变址寻址(IDX)
➢ 16位常数/累加器D偏移量的间接变址寻址 (内存中再取新地址)
重庆大学通信工程学院 任勇、王永东
3.2 寻址方式
概念---CPU执行指令时确定操作数所在单元地址的方式。 操作数来自:寄存器、指令代码、存储单元(都有地址)
S12(X)有9大种寻址方式:
(1)隐含寻址(INH)
如 ROLA
(循环左移,操作数A隐含在指令中)
(2)立即数寻址(IMM)
如 LDAA #$FF (将十六进制数FF调入A中,#表示)
8 位累加器 A
7
07
15
8 位累加器 B 0 8 位累加器 A、B 0 16 位累加器 D
15
0 变址寄存器 X
15
0 变址寄存器 Y
15
0 堆栈指针 SP
15
0 程序计数器 PC
S X H I N Z V C 条件码寄存器 CCR
进位/借位标志 C 溢出标志 V 零标志 Z 负标志 N 中断屏蔽位 I 半进位标志 H 非屏蔽中断允许位 X 停止(STOP)模式禁止位 S
• STAA $3F • STD -$2000,PC • STY 2,+SP
重庆大学通信工程学院 任勇、王永东
3、寄存器传送指令: Transfer
助记符
功能
TAB
将寄存器A中内容送入寄存器B
TBA
将寄存器B中内容送人寄存器A
TFR
寄存器之间的数据传送
操作
(A)→B
(B)→A (A、B、CCR、D、X、Y、SP) →A、B、CCR、D、X、Y、SP
建议:平常使用时,不应使用位数不匹配的方式进行数据交换。
重庆大学通信工程学院 任勇、王永东
5、内存数据传送指令:Move
特点:
1、不影响标志位
2、允许地址与地址间传送
3、传送方向是 ->
(例 MOVB $1000, $2000 )
4、16位数据结构是高位在前,低位在后
注: 1、浏览书中指令内容 2、以后编程时再查阅、体会
助记方法:英语含义,如:
CLR = CleaR LDAA = LoaD Accumulator A STAB = STore Accumulator B TAB = Transfer A to B MOVB =Move Byte BEQ =Branch EQual zero
助记符 STAA STAB STD STS STX STY
功能 将寄存器A中内容送入内存单元 将寄存器B中内容送人内存单元 将寄存器D中内容送入内存单元 将堆栈SP中内容送入内存单元 将变址寄存器x中内容送人内存单元 将变址寄存器Y中内容送入内存单元
操作 (A)→M (B)→M (A)→M, (B)→M+1 (SPH:SPL)→M:M+1 (XH:XL)→M:M+1 (YH:YL)→M:M+1