【大学课件】单片机原理与应用设计 序论及基础知识PPT.ppt

上传人:本田雅阁 文档编号:3034806 上传时间:2019-06-28 格式:PPT 页数:48 大小:1.28MB
返回 下载 相关 举报
【大学课件】单片机原理与应用设计 序论及基础知识PPT.ppt_第1页
第1页 / 共48页
【大学课件】单片机原理与应用设计 序论及基础知识PPT.ppt_第2页
第2页 / 共48页
【大学课件】单片机原理与应用设计 序论及基础知识PPT.ppt_第3页
第3页 / 共48页
【大学课件】单片机原理与应用设计 序论及基础知识PPT.ppt_第4页
第4页 / 共48页
【大学课件】单片机原理与应用设计 序论及基础知识PPT.ppt_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《【大学课件】单片机原理与应用设计 序论及基础知识PPT.ppt》由会员分享,可在线阅读,更多相关《【大学课件】单片机原理与应用设计 序论及基础知识PPT.ppt(48页珍藏版)》请在三一文库上搜索。

1、汇编语言程序设计,课程的总体结构,基础知识,指令系统,计算机组成结构,CPU寻址方式,80X86 汇编语言程序,子程序,循环分支程序,高级汇编技术,I/O程序设计,BIOS和DOS中断,相关应用,图形程序与 发声程序设计,磁盘文件 存取技术,Pentium 汇编语言,单片机汇编语言,应用,基础,汇编语言程序设计参考书推荐,1.80X86汇编语言程序设计 沈美明 温冬婵 清华大学出版社 2.IBM PC 汇编语言与程序设计 PETER ABEL 编著 第4版 清华大学出版社.PRENTICE HALL 第5版 人民邮电出版社 3. IBM PC 汇编语言与程序设计例题习题集 温冬婵 沈美明 清华

2、大学出版社 汇编语言程序设计 -方法技术应用 周学毛 高等教育出版社,教学安排: 第一章 绪论 数制 数制之间的转换 数和字符的表示 运算 (2学时) 第二章 计算机组织 CPU 存储器 外部设备 寻址方式 指令系统1-数据传送指令格式、算术指令格式及应用 (4学时) 第三章 汇编语言格式 完整段定义和简化段定义格式 伪操作 表达式 (4学时) 第四章 指令系统2 (2学时) 第五、六、七章 简单汇编语言程序设计 循环程序设计 分支程序设计 子程序设计 (8学时) 第八章 输入输出程序设计简介 编程练习 (2学时) 第章 编程练习 综合习题及复习 (2学时),计算机系统由硬件和软件两大部分组成

3、,第1章 基 础 知 识,绪论 硬件部分,磁盘接口,典型PC机主板结构,计算机基础讨论的计算机组成,CPU结构示意图,主存 及 辅存,8 0 8 6系统结构简图,20位物理地址,16位数据,运算器,寄存器组,CPU内部总线,系统总线,8086 CPU 硬件实例,80188应用板,一个程序的运行过程, 装载(Loader):将可执行文件按特定规律加载到内存(该步由操作系统完成); 执行(Execute):执行当前程序(按应用程序代码执行)。,一条指令的执行过程, 逻辑控制输出指令地址(可包含在取指中) 取指:取出相应指令送往指令寄存器 译码:分析指令代码 执行:包括取操作数、计算 回送:回送结果

4、 以上所有操作都在逻辑控制器控制下完成。,指令:ADD A,AX A=A+AX 执行过程。 其中A为内存变量,AX为寄存器变量。,数据和信息的存储,数据和信息最基本的单位是二进制的一个位,但存储时往往是以字节为单位存放,每字节一个地址,每字节由八个二进制位组成地址表达了字节数据存放的位置。,计算机语言的发展,机器语言,FORTRAN BASIC PASCAL C/C+ DBASE JAVA .,1.1 计算机语言概述 P1,计算机语言的发展历程,机器语言,汇编语言,高级语言,0010011,C,BASIC,PASCAL,FORTRAN,C+,C#. NET,MOV AX,01 INT 21H,

5、面向数据库 的语言,基于WEB的 开发语言,VB,DELPHI,FOXPRO,DBASE,SQL,SYSBASE,ORCALE,JAVA,ASP,VC+,XML,HTML,#include “stdafx.h“ #include “stdio.h“ int main(int argc, char* argv) int a,b,c; a=1; b=2; c=a+b; printf(“c=%dn“,c); return 0; ,例1. 用C语言编程实现 c =a+b,并在屏幕上显示出结果。,编译后的目标文件达到3.59KB,data segment a dw ? b dw ? c dw ? str

6、ing db c=$ data ends code segment main proc far assume cs:code, ds:data, es:data start: push ds sub ax,ax push ax mov ax,data mov ds,ax mov es,ax,mov a,1 mov b,2 mov ax,a add ax,b mov c,ax lea dx,string mov ah,09 int 21h add al,30h mov dl,al mov ah,2 int 21h mov dl,0ah int 21h mov dl,0dh int 21h ret

7、 main endp code ends end start,例 2. 用汇编语言编程实现 C = a + b,汇编后的目标文件只有208字节,初始化,显示结果 printf,;a=1 ;b=2 ;ax=a ;ax+=b ;c=ax,机器语言、汇编语言相关概念,汇编语言:直接构架于机器语言之上的,用助记符书写的一种符号语言,经过汇编程序编译后能最终为CPU识别的一种人机交流的语言,是一种符号化的机器语言。便于书写、阅读和检查。 用汇编语言编写的程序叫汇编源程序,机器语言:计算机硬件能直接识别的语言,由二进制代码表示的指令组成,它是面向特定机器结构的内部语言。相应的指令称为机器指令。它与硬件相关

8、,程序效率高,但通用性差。, 高级程序设计语言:是面向用户,与特定机器属性相分离的通用语言。每种语言都有自己的语法规定与格式,也有适用范围。如C、PASCAL、C+、BASIC。,计算机语言的开发平台,DOS,UNIX,Linux,Windows,NETWARE,Windows 2000/XP,汇编语言编译软件,主要有:,Borland公司的TASM版本,Microsoft公司的MASM版本,基于Windows 的:未来汇编 Asm Studio,汇编语言的特点,(1)汇编语言与机器密切相关:极强的硬件控制能力(如端口控制),在硬件的调试中极为有用。 (2)汇编语言程序效率高:目标程序短(占用

9、内存少)、运行速度快。 (3)特殊使用场合:工业控制、驱动程序。 (4)多样性:CPU机器指令的差异性决定汇编语言源程序的多样性。 (5)易维护性:易读性、易维护性弱于高级语言。,汇编语言的应用,程序执行占用较短的时间,或者占用较小存储容量的场合。 程序与计算机硬件密切相关,程序直接控制硬件的场合。 需提高大型软件性能的场合。 没有合适的高级语言的场合。,汇编语言的应用 系统程序、效率代码、I/O驱动程序 70%以上的系统软件是用汇编语言编写的。 某些快速处理、位处理、访问硬件设备等 高效程序是用汇编语言编写的。 高级绘图程序、视频游戏程序一般是用汇 编语言编写的。 病毒及杀毒部分相关用汇编语

10、言编写。,学习汇编语言,你需要,胆量。不要害怕去接触那些计算机的内部工作机制。 知识。了解计算机常用的数制,特别是二进制、十六进制、八进制,以及计算机保存数据的方法。 开放。接受汇编语言与高级语言的差异,而不是去指责它如何的不好读。 经验。要求你拥有任意其他编程语言的一点点编程经验。 头脑。, 数制 数制之间的转换 运算 数和字符的表示,1.2 数据表示方式、运算与转换 P3,预 备 知 识,存储容量 1K = 1024 = 210 (Kilo) 1M = 1024K = 220 (Mega) 1G = 1024M = 230 (Giga) 数据宽度 1个二进制位:bit (比特) 8个二进制

11、位:Byte (字节) 1Byte = 8bit 2个字节: Word (字) 1Word = 2Byte = 16bit,1. 数 制,二进制: 基数为2,逢二进一 P4 1101B = 12 3 + 12 2 + 12 0 = 13 十六进制:基数为16,逢十六进一 1001, 0001, 1000, 0111 B 9 1 8 7 H = 9 16 3 + 1 16 2 + 8 16 1 + 7 16 0,2. 数制之间的转换,二进制 十六进制 十进制 二进制 十进制 十六进制,降幂法 除法, 二进制 十六进制 P5 0011 0101 1011 1111 3 5 B F 0011,010

12、1,1011,1111B = 35BFH A 1 9 C 1010 0001 1001 1100 A19CH = 1010,0001,1001,1100B,1011B = 23+21+20=11D 降幂法 除法 例: 27D = ? B 27 11 3 3 1 - - - - 2n 16 8 4 2 1 1 1 0 1 1 27D = 11011B, 二进制 十进制 P5,余数 2 37 1 2 18 0 2 9 1 2 4 0 2 2 0 2 1 1 0 所以37=10,0101B, 十六进制 十进制 BF3CH = 11163 +15162 +3161 +12160 = 48956D 降幂

13、法 除法 例:399D = ? H 399 143 15 399/1624/161/16 0 - - - 16n 256 16 1 F 8 1 1 8 F 399D = 18FH, 算术运算 二进制数:逢二进一 借一为二 加法规则 乘法规则 0 + 0 = 0 0 0 = 0 0 + 1 = 1 0 1 = 0 1 + 0 = 1 1 0 = 0 1 + 1 = 0 (进位1) 1 1 = 1,3. 运算(算术运算和逻辑运算),0 5 C 3 H 3 D 2 5 H 4 2 E 8 H,3 D 2 5 H 0 5 C 3 H 3 7 6 2 H,1,1,十六进制数:逢十六进一 借一为十六, 逻

14、辑运算(按位操作) P11,“与”运算(AND) “或”运算(OR) A B AB A B AB 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 1 1 1 1 1 1 1 “非”运算(NOT) “异或”运算(XOR) A A B AB 0 1 0 0 0 1 0 0 1 1 1 0 1 1 1 0,例:X=00FFH Y=5555H,求Z=XY= ? X= 0000 0000 1111 1111 B Y= 0101 0101 0101 0101 B Z= 0101 0101 1010 1010 B Z=55AAH,4. 数和字符的表示 P6-P9, 计算机中正负数的表示,

15、7 6 5 4 3 2 1 0,符号位 数值位,假设机器字长为16位:,符号位 = 0 正数 数值位 = 1 负数,15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0,假设机器字长为8位:,H.O.Byte,L.O.Byte,H.O.Nibble,L.O.Nibble,数的常用表示法 原码 反码 补码 原码表示法:符号 + 绝对值 例:n = 8bit +3原码 = 0 000,0011 = 03H - 3原码 = 1 000,0011 = 83H +0原码 = 0 000,0000 = 00H - 0原码 = 1 000,0000 = 80H 0 的表示不唯一 反码表

16、示法:正数的反码同原码,负数的反码数值位与原码相反 例:n = 8bit +5反码 = 0 000,0101 = 05H - 5反码 = 1 111,1010 = FAH +0反码 = 0 000,0000 = 00H - 0反码 = 1 111,1111 = FFH 0 的表示不唯一,例: 机器字长8位,- 46补码 = ? 46补码 = 0 0 1 0 1 1 1 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 = D2H 机器字长16位,- 46补码 = FFD2H +0补码 = 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0

17、0 0 = - 0补码 0 的表示唯一,按位求反,末位加一,补码(Twos Complement)表示法: 正数的补码: 同原码 负数的补码:(1)写出与该负数相对应的正数的补码 (2)按位求反 (3)末位加一,n位二进制补码的表数范围: - 2n-1 N 2n-1-1,无符号整数的表数范围: 0 N 2n-1,补码的加法和减法: P9 求补运算 :对一个二进制数按位求反、末位加一 X补码 -X补码 X补码 求补 求补 加法规则:X+Y补码 = X补码 + Y补码 减法规则:X-Y补码 = X补码 + -Y补码 补码减法可转换为补码加法,64 (-46) 18,0100 0000 1101 0

18、010 0001 0010,例:,进位和溢出 进位: 由于运算结果超出了位数,最高有效位向 前的进位,这一位自然丢失,一般不表 示结果的对错。 溢出:表示结果超出了字长允许表示的范围, 一般会造成结果出错。 例:(64) 11000000 127 01111111 64 01000000 + 1 00000001 0 1 00000000 128 10000000 进位 溢出,BCD码,虽然二进制数实现容易,但不符合人们的使用习惯,且书写阅读不方便,所以在计算机输入输出时通常还是采用十进制来表示数,这就需要实现十进制与二进制间的转换。为了转换方便,常采用二进制编码的十进制,简称为BCD码。 B

19、CD码就是用4位二进制数表示1位十进制整数。表示的方法有多种,常用的是8421 BCD码,它的表示规律如表所示。,十进制数字的8421 BCD码, 字符的表示 P10 ASCII码:用一个字节来表示一个字符,低7位为字符的ASCII值,最高位一般用作校验位。 例: A 41H a 61H 0 30H 换行 0AH 回车 0DH 空格 20H,作业,教材P11页 1 4 7 9 (其中假设字长n=16) 课外查阅资料并思考10、13、14题,练习,1 十六进制数88H,可表示成下面几种形式,请找出错误的表示( )。 无符号十进制数136 带符号十进制数120 压缩型BCD码十进制数88 8位二进

20、制数8的补码表示 2 n位补码的表数范围为: N 。 3 设(AX)=0304H,(BX)=0FF00H则执行指令 AND AX,BX 后,(AX)= 。 4 已知:X补=0075H,Y补=0FF8BH,则X+Y补= ,X-Y补= 。 5 计算机内表示机器数的常用编码有_ _。 6 已知-Y补=7001H,则Y=(_H)。 7 已知X-Y补=7001H,X+Y补=0001H,则2X补=(_H)。,4,2n-1,2n-1-1,0300H,0000H,00EAH,原码、反码、补码、ASCII、BCD码等,8FFF,7002,练习,1 十六进制数88H,可表示成下面几种形式,请找出错误的表示( 4 )。 无符号十进制数136 带符号十进制数120 压缩型BCD码十进制数88 8位二进制数8的补码表示 2 n位补码的表数范围为: 2n-1 N + 2n-1-1。 3 设(AX)=0304H,(BX)=0FF00H则执行指令 AND AX,BX 后,(AX)=0300H。 4 已知:X补=0075H,Y补=0FF8BH,则X+Y补=0000H,X-Y补=00EAH。 5 计算机内表示机器数的常用编码有原、反、补、ASCII、BCD码等。 6 已知-Y补=7001H,则Y=(8FFFH)。 7 已知X-Y补=7001H,X+Y补=0001H,则2X补=(7002H)。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1