汇编语言程序设计实践教程

上传人:kms****20 文档编号:53676073 上传时间:2018-09-04 格式:PPT 页数:318 大小:1,018KB
返回 下载 相关 举报
汇编语言程序设计实践教程_第1页
第1页 / 共318页
汇编语言程序设计实践教程_第2页
第2页 / 共318页
汇编语言程序设计实践教程_第3页
第3页 / 共318页
汇编语言程序设计实践教程_第4页
第4页 / 共318页
汇编语言程序设计实践教程_第5页
第5页 / 共318页
点击查看更多>>
资源描述

《汇编语言程序设计实践教程》由会员分享,可在线阅读,更多相关《汇编语言程序设计实践教程(318页珍藏版)》请在金锄头文库上搜索。

1、1,教材:汇编语言程序设计实践教程欢迎提意见! 参考书:汇编语言程序设计 丁辉 电子工业出版社,后半学期: 微机接口技术及实验,是微机原理与接口技术及实验的一部分,汇编语言程序设计实践教程, 汇编语言 asm2005,微型计算机接口技术,张弥左,机械工业出版社 微机实验讲义(硬件部分),2,目录,第一章 汇编语言程序设计基础 第二章 汇编语言程序设计入门 第三章 算术运算程序 第四章 代码转换程序 第五章 系统调用程序 第六章 表处理程序 第七章 子程序及其与主程序参数传递,3,1、重要性2、特点3、学习方法4、考核要求,引言,4,1、重要性,专业基础课:电类、工科、理科有助于微机应用水平提高

2、计算机等级考试:三级PC机技术研究生入学考试,5,2、特点,A,B,C,概念间关系:网状,理解困难,内容多:汇编语言、微机原理、接口技术,6,3、学习方法,理解与记忆:尽快适应 预习与复习:学习效率 实验与习题:针对性强分4层次:习题、必做实验、选做实验、思考题 教与学:,教:难点、要点; 目的:让学生少走弯路,提高效率; 学是关键!,敢问! 会问!,7,4、考核要求,笔试:期中、期末: 各35%笔试内容充分结合实验内容! 平时:作业、考勤、态度、提问: 30% 作业、实验报告必须手写!实验:平时成绩的一部分预习、操作、报告。,8,第一章 汇编语言程序设计基础,1.1 二进制数和十六进制数 1

3、.2 无符号数和带符号数 1.3 微机基本原理 1.4 8086CPU 1.5 DEBUG操作(一) 1.6 判断标志位实验 1.7 计算机中的十进制数及其运算原理 1.8 BCD码运算实验,9,1.1 二进制数和十六进制数,日常生活:十进制、十二进制、六十进制 计算机:二进制、十六进制,n位整数m位小数:Xn-1Xn-2Xn-3X2X1X0X-1X-2X-m+1X-m 数学意义: X=Xn-1En-1Xn-2En-2Xn-3En-3X2E2X1EX0X-1E-1X-2E-2.X-m+1E-m+1X-mE-m(0XiE-1) E=10、16、2、,10,1.1.1 二进制数,计算中:8位、16

4、位、32位、64位、 例:1010 0101B,1001,0011,1111,0000B 书写时,每4位用空格或逗号分隔; 但源程序中不能!,加:1011 1001+0111 100110011 0010,减:1011 1001-0111 01100100 0011 不够减问题?,11,被乘数左移相加法1011100101111001101110011011100110111001 10111001+10111001 0101011101110001,二进制数乘法运算,12,二进制数除法运算,除数右移试减法0000000100110100 100110101011100101011010-10

5、011010 11111010 -10011010 11000001-10011010 10011110-10011010 010010,加减乘除 人工计算方法 硬件方法 编程方法有小数点?,13,1.1.2 十六进制数,源程序中采用,实际上也是二进制 4位二进制=1位十六进制,09、AF 例:0ABH=1010 1011B,0=0000B 8=1000B 1=0001B 9=1001B 2=0010B A=1010B 3=0011B B=1011B 4=0100B C=1100B 5=0101B D=1101B 6=0110B E=1110B 7=0111B F=1111B 必须熟记!,加减

6、:参照二/十进制列竖式 乘除:转换为二进制用二进制运算转换为十六进制,14,1.1.3 十进制与二/十六进制转换,1、十进制二进制整数部分:除2取余法(已知X求Xn-1,X2X1X0)小数部分:乘2取整法(已知X求X-1X-2X1-mX-m),2、十进制十六进制:方法1、先二进制,再十六进制方法2、整数部分:除16取余法小数部分:乘16取整法,3、二进制/十六进制十进制:(已知Xn-1,X2X1X0 X-1X-2X1-mX-m求X)整数、小数部分都用:按幂展开,15,十进制转二进制举例,整数:除2取余 100500 =B0250 =B1121 =B260 =B330 =B411 =B501 =

7、B6 100=0110 0100B,小数:乘2取整0.568 B-1=1.136 B-2=0.272 B-3=0.544 B-4=1.088 B-5=0.176 B-6=0.352 B-7=0.704 B-8=1.408 0.568=0.1001 0001B 可能无法完全精确转换,16,1.2 无符号数和带符号数,计算机中同一个数可表示不同的实际值 同一个实际值在计算机中有不同形式表示 机器数:计算机中的二进制, 十六进制 真值:机器数所表示的实际数值,十进制,机器数:无符号数、带符号数 带符号数:原码、反码、补码 属于定点数,整数是定点数的特例 计算机中数的表示和计算还有浮点数,17,1.2

8、.1 无符号数,8位、16位、32位、, 每位都是数值位8位:0000 0000B1111 1111B0 255 16位:0000H0FFFFH0 65535,18,1.2.2 带符号数、原码,8位、16位、32位、, 最高位是符号位,0=正,1=负 其余每位都是数值位 原码:低7位是表示绝对值 1111 1111B 0FFH -127 1000 0000B 80H -0 0000 0000B 00H +0 0111 1111B 7FH +127,19,反码,正数:与原码相同; 负数:对应正数的原码每位取反 1000 0000B 80H -127 1111 1111B 0FFH -0 0000

9、 0000B 00H +0 0111 1111B 7FH +127,20,补码,正数:与原码相同; 负数:对应正数的原码每位取反+1,(反码+1) 1000 0000B 80H -128 1111 1111B 0FFH -1 0000 0000B 00H 0 0111 1111B 7FH +127,21,8位机器数与真值关系图,00H,7FH,80H,FFH,真值,机器数,-128,127,255,-1,-127,无原反补,无,原,补,反,0,128,模:28,16位?,22,1.2.3 真值与机器数转换,人工计算:真值转换为机器数;机器转换为真值。 从机器数的定义分析, 分三种情况讨论: 1

10、.无符号数与真值的转换 2.正数真值与原码、反码、补码转换 3.负数真值与原码、反码、补码转换,23,1.无符号数与真值转换,真值无符号机器数: 除2取余法,不足的位数补0 例:2001100 1000B0C8H 8位不够就用16位,16位不够就用32位, 无符号机器数真值: 按幂展开, 例:1101 0000B(0D0H)128+64+16=208,24,2.正数真值与原反补转换,与无符号差别仅最高位必须=0, 转换方法与无符号数的方法相同。 正数真值原、反、补码机器数: 除2取余法,结果最高位必须为0! 例: 1200111 1000B78H 原、反、补码机器数真值:按幂展开 例:0110

11、 1010B(6AH)64+32+8+2=106,25,3.负数真值与原反补转换,真值机器数:先转为原码反码补码。 负数真值原码:将绝对值除2取余,最高位写1 负数真值反码:原码数值位取反,符号位不变 负数真值补码:在反码最低位上加1 例:-1201111 1000B1000 0111B1000 1000B 机器数真值:机器数的最高位为1 原码真值:数值位按幂展开,加负号 反码真值:数值位每位取反后按幂展开,加负号 补码真值:数值位取反加1,按幂展开,加负号 对任意二进制数B,等式/(B-1)=/B+1成立. 例:C8-72(原码)-55(反码)-56(补码),26,1.2.4 机器数和真值关

12、系,同一个真值有不同的机器数表示:,同一个机器数可以表示不同的真值:,27,1.2.5 为什么用补码,1. 减法转换为加法:A-B=A+(-B) 2. 更重要的原因是:简化CPU硬件 带符号数和无符号数的加减运算规则相同,求补码:真值转换为机器数,正数:十进制转为二进制负数:对应正数的二进制取反加1 求补: 对机器数操作,取反加1;正转为负,负转为正 对任意二进制数B: 0-B=2n-B=/(B-1)=/B1,28,1.3 微机基本原理,微机基本组成结构指令执行过程,29,1.3.1 微机基本结构框图,CPU,存储器,I/O接口,I/O设备,AB 地址总线,数据总线DB,控制总线CB,三条总线

13、连接三大部件,AB位数决定存储容量,DB位数决定一次传送数据位数 控制总线主要有:M/IO、/RD(读)、/WR(写),数字电子计算机,30,1.3.2 指令执行过程,冯诺依曼型计算机:存储程序计算机,一条指令的执行过程分4个步骤: 取指、取数、译码操作(运算)、存数 指令的执行时间问题,程序装入主存,运行,控制权交回系统。,高级语言程序由有序排列的语句组成; 汇编语言程序由有序排列的指令组成。 程序的运行过程就是指令执行的重复过程,31,取指、取数过程,AB送出地址; CB送出M/IO、/RD; 存储器从DB送机器码或数据; CPU从DB上读入。,CPU,存储器,I/O接口,AB,DB,CB

14、,32,存数过程,I/O接口的操作:输入、输出 原理与存储器读、写相同,AB送出地址; DB送出数据; CB送出M/IO、/WR; 存储器从DB读入数据,CPU,存储器,I/O接口,AB,DB,CB,33,1.4 8086CPU,CPU是微机的核心,最关键的部件。重点掌握: 与汇编语言编程密切相关的内容内部寄存器及其用法 标志寄存器,34,1.4.1 微处理器概述,8位:8080、8085、8088 Intel 80x86系列:向上兼容 16位:8086、(80186)、80286 32位:80386、80486、Pentium、 64位:双核、4核、,微控制器(单片机) 控制应用 MCS51

15、、PIC 8位为主 DSP芯片 信号处理 TMS320 16位为主 嵌入式微处理器 移动设备 ARM 32位为主 通用微处理器 台式微机 Z80、80X86 32位为主,CPU微处理器,应用不同有4个分支:,35,1.4.2 8086内部结构,寄存器组,段寄存器 指令指针,总线控制逻辑,指令队列,总线接口单元BIU,执行单元EU,标志寄存器,ALU,外部总线,内部总线,地址加法器,控制单元,20位地址,16位数据,元件级、门电路级、框图级,前后联系理解!,AB DB CB,ALU 算术逻辑单元,36,1.4.3 8086寄存器,AX 累加器 Accumulator,BX 基址寄存器 Base,CX 计数寄存器 Count,DX 数据寄存器 Data,源变址寄存器 Source Index,目的变址寄存器 Destination Index,基址指针 Base Pointer,堆栈指针 Stack Pointer,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号