微机原理(第5讲)第3章汇编语言基础课件

上传人:我*** 文档编号:145967095 上传时间:2020-09-25 格式:PPT 页数:53 大小:865KB
返回 下载 相关 举报
微机原理(第5讲)第3章汇编语言基础课件_第1页
第1页 / 共53页
微机原理(第5讲)第3章汇编语言基础课件_第2页
第2页 / 共53页
微机原理(第5讲)第3章汇编语言基础课件_第3页
第3页 / 共53页
微机原理(第5讲)第3章汇编语言基础课件_第4页
第4页 / 共53页
微机原理(第5讲)第3章汇编语言基础课件_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《微机原理(第5讲)第3章汇编语言基础课件》由会员分享,可在线阅读,更多相关《微机原理(第5讲)第3章汇编语言基础课件(53页珍藏版)》请在金锄头文库上搜索。

1、第3章 汇编语言基础,补充. 程序设计语言概述 3.1 源程序结构 3.2 数据表示,第3章 汇编语言基础,3.1 源程序结构 3.1.1 语句格式 3.1.2 程序格式 3.1.3 开发方法 3.2 数据表示 3.2.1 数制 3.2.2 编码 3.2.3 常量表达 3.3 变量应用 3.3.1 变量定义 3.2.2 变量属性,补充. 程序设计语言概述(补1),计算机程序设计语言分类 机器语言 汇编语言 高级语言 从源程序获得目标程序的过程,汇编语言程序的上机与处理过程(补1),(补1),用编辑程序建立ASM程序 用汇编程序把ASM程序转换成OBJ程序 用连接程序把OBJ程序转换成EXE程序

2、 用调试程序调试程序 用DOS命令直接键入程序名执行,操作系统:DOS系统 编辑器: EDIT.exe 编译程序:MASM.exe 连接程序:LINK.exe 调试程序:DEBUG.exe 执行程序,D:EDIT ABC.asm D:MASM ABC D:LINK ABC D:DEBUG ABC.exe D:ABC,汇编程序的分类(补1),基本汇编 ASM 宏汇编 MASM(有各种版本,还支持宏操作、条件汇编、协处理命令等) TASM(Turbo Assembler)性能同MASM,速度更快 其它,3.1 源程序结构,3.1.1 语句格式 3.1.2 程序格式 3.1.3 开发方法,3.1.1

3、 语句格式,语句组成 一个语句常占一行,不超过132个字符 种类 执行性语句 指令、硬指令 说明性语句 伪指令 宏指令语句(不讲),不区别大小写字母,指令与伪指令的比较,指令 可执行语句 使CPU产生动作 产生目标代码 与CPU类型有关 与汇编程序的版本无关,伪指令 说明性语句,控制汇编方式 不产生CPU动作 不产生目标代码 与CPU类型无关 与汇编程序的版本有关,格式,指令 例 NEXT:MOVAX, 5H;将5H送入AX 伪指令 例 msgdbHello, Assembly !,13,10, $ ;定义变量msg的存放形式,标号: 前缀 硬指令助记符 操作数,操作数;注释,名字 伪指令助记

4、符 参数,参数,;注释,翻译成机器语言指令,由汇编程序处理,常量、寄存器、存储器、表达式,仅可出现在指令助记符前,标识符、保留字,保留字(Reserved Word),汇编程序已用标识符 硬指令助记符,如:MOV、ADD 伪指令助记符,如:DB、EQU 操作符,如:OFFSET、PTR 寄存器名,如:AX、CS 预定义符号,如:data 标识符(Identifier) 一般最多由31个字母、数字及规定的特殊符号(如 _、$、?、)组成,不能以数字开头 不区分字母大小写 标识符的定义是唯一的,不能是保留字 具有段基址、偏移量、类型三种属性,例:下列那些标识符有效?那些无效? NUM+1: _ S

5、TART: _ MY_CODE: _ 4LOOP: _ NUM_1: _ A/B: _,试试看!,Intel Architecture Software Developers ManualVolume 2: Instruction Set Reference,指令要解决的两个问题,进行什么操作 操作符 操作数和操作结果放在何处 寻址方式,CPU的基本任务: 解释执行指令代码,Intel 指令格式,8086的机器代码格式,例1:mov ax,BP+0,机器代码是 8B 46 00 8B:操作码(含w1表示字操作) 46(01 000 110): “mod reg r/m”字节 mod01和r/m

6、110表示源操作数为BP+disp8 reg000表示目的操作数为AX 最后一个字节:8位位移量(disp8 = )00,例2,(1)mov al,05 ;机器代码是 B0 05 B0 :操作码(含一个操作数AL) 05 :立即数 (2)mov ax,0102H ;机器代码是 B8 02 01 B8:操作码(含一个操作数AX) 02 01:16位立即数(低字节02在低地址),3.1.2 程序格式,逻辑段基本定义格式 DATAS SEGMENT ;此处输入数据段代码 DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT AS

7、SUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 MOV AH,4CH INT 21H CODES ENDS END START,逻辑段简化定义格式 .model small .486 .data ;此处输入数据段代码 .stack ;此处输入堆栈段代码 .code .startup ;此处输入代码段代码 .exit end,解析简化段定义源程序格式(1),;example.asm .model small;定义程序的存储模式 .486;说明使用的80 x86微处理器指令 .stack;定义堆栈段

8、 .data;定义数据段 ;数据定义(数据待填) .code;定义代码段 .startup;程序执行起始 ;主程序(指令待填) .exit;程序执行结束,返回DOS ;子程序(指令待填) end;汇编结束,处理器选择伪指令,缺省情况MASM只汇编16位8086指令集 使用80186及以后80 x86新增的指令,必须使用处理器选择伪指令 利用32位寄存器完成32位操作,必须加上.386及以上处理器的选择伪指令 留心.386及以后的处理器选择伪指令的位置 在存储模式MODEL指令之后,默认采用16位段 在存储模式MODEL指令之前,默认采用32位段,解析基本段定义源程序格式(2),逻辑段基本定义格

9、式 DATAS SEGMENT ;此处输入数据段代码 DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 MOV AH,4CH INT 21H CODES ENDS END START,指明:逻辑段与各段寄存器的关系,用户自己设置各段寄存器的值 (代码段CS除外),返回DOS操作系统 (非标准方法),注意 MASM汇编程序 设置CS和IP,SS和SP 没有设置DS和ES、

10、以及FS和GS,执行结束(.exit语句),应用程序终止执行,将控制权交还操作系统 .EXIT语句利用4CH号DOS功能调用实现 movah,4ch int21h,DOS功能调用,MS-DOS操作系统提供给程序员的子程序 调用子程序步骤(类似高级语言调用函数) 在AH寄存器中设置系统功能调用号 在指定寄存器中设置入口参数 中断调用指令“INT 21H”执行功能 根据出口参数分析功能调用执行情况,字符串显示功能调用,主存的字符串以“$”作为结尾符 类似C/C+语言中隐含用NULL作为字符串结尾,例3-1信息显示程序,源程序 简化段定义 源程序 一般段定义 源程序,3.1.1 汇编语言程序的开发过

11、程,3.2 数据表示,3.2.1 数制 3.2.2 编码 3.2.3 常量表达,3.2.1 数制,什么是数制 利用符号计数的一种科学方法 微型计算机中常用 十进制(Decimal,D):符合人的习惯 二进制(Binary,B):便于计算机存储及物理实现 十六进制(Hexadecimal,H) :书写简单 n 进制数 逢 n 进 1,借 1 当 n,进位计数制,按进位的方法计数称为进位计数制,凡进位计数制都可按权展开: anrn+an-1rn-1+ a1r1 + a0r0 +b1r-1+ b2r-2 + bmr-m r = 2,10,8,16 基数 rk 位权,(1)进制转换,例1. 求3901

12、所对应的十六进制数 (F3DH ) 例2. 求0.76171875的十六进制数(0.C3H ),十六进制数、 二进制数、 十进制数对照表,例:数制转换,例1. 把 1011.01B 和 F0.CH 用十进制表示 例2. 把 103D 用二进制和十六进制表示 解:,(2)真值和机器数,真值 现实中真实的数值 机器数 计算机中用0和1数码组合表达的数值 例,(3)无符号数和有符号数,无符号数 0和正整数 有符号数 0 、负整数和正整数 符号位(参与运算) 机器数的最高位 0:正数;1:负数,(4)定点数和浮点数,定点数 小数点位置固定的机器数 定点整数 小数点在机器数的最右侧 定点小数 小数点在机

13、器数的最左侧 浮点数 小数点浮动表达的实数,(5)机器数常用的码制,原码 机器数 反码 正数的反码 = 原码 负数的反码 把原码除符号位以外的各位按位取反 补码 正数的补码 = 原码 负数的补码 反码加1,n位二进制数的数值范围,原码:-2n-1+1 2n-1-1 反码:-2n-1+1 2n-1-1 补码:-2n-1 2n-1-1 例. 补码 8位二进制:-128 +127 16位二进制:-215 +215-1 32位二进制:-231 +231-1,0的原码、反码和补码,原码 +0原= 0 0000B - 0原= 1 0000B 反码 +0反= 0 0000B - 0反= 1 1111B 补码

14、 +0补=- 0补= 0 0000B,例1. X= +110 1001B, Y= - 110 1001B X反= 0110 1001B Y反= 1001 0110B 例2. X= +110 1001B, Y= - 110 1001B X补= 0110 1001B Y补= 1001 0111B = 1001 0110B1=Y反 1 = 28(-1101001B)= 1 0000 0000B 1101001B = 28 Y,(6)补码的求法,(a) X补= 0 X1X2.Xn-1;X 0 X补= 1 X1X2.Xn-1+1;X 0 (b) X补= X;X 0 X补= 2n X ;X 0,-128的

15、补码: -128补= 28 + (-128) = (1000 0000)B,为什么用补码?,跑道全长10(模) 起点与终点重合,即10=0,+6,-4,-4的补码是6,+6=10+(-4),+8,-2,6+8=14,6-2=4,-2的补码是8,+8=10+(-2),减法用补码的加法计算,补码的加法 X+Y补= 2n+X+2n+Y =(2n+X)+(2n+Y) =X补+Y补 补码的减法 X-Y补= 2n+(X-Y)= 2n+2n+(X-Y) = (2n+X)+2n+(-Y) = X补+-Y补 -X补的计算 -X补= 2n+(-X),-X补 对X补连同符号位在内一起求反+1,X补补X原,例: 设X

16、补=0000 0100B, Y补=1111 0010B,则 求真值 -Y补=Y补各位取反加1 X补=0000 0100B X=4 Y补=1111 0010B Y=-14 补码计算 X+Y补 = X补 + Y补 = 0000 0100B + 1111 0010B = 1111 0110B (-10的补码) X-Y补 = X补 +-Y补 = 0000 0100B + 0000 1110B = 0001 0010B (18的补码),3.2.2 编码,BCD码(Binary Coded Decimal) ASCII码(美国标准信息交换码),BCD码(Binary Coded Decimal),十进制数的二进制表示 分类 8421 BCD码:二进制编码表示09 压缩BCD码:一个字节表示两位BCD码 非压缩BCD码 一个字节表达一位BCD码(低4位表达数值,高4位常设置为0) 例 BCD码:0100 1001 0111 1000 . 000

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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