最新汇编语言程序设计32教室版课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《最新汇编语言程序设计32教室版课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 汇编语言 程序设计 32 教室 课件
- 资源描述:
-
1、汇编语言程序设计汇编语言程序设计3232教室教室版版概述 汇编语言是计算机提供给用户的最汇编语言是计算机提供给用户的最快最有效的语言,也是利用计算机所有快最有效的语言,也是利用计算机所有硬件特性并能直接控制硬件的唯一语言。硬件特性并能直接控制硬件的唯一语言。因而在对于程序的空间和时间要求很高的场合,因而在对于程序的空间和时间要求很高的场合,汇编语言是必不可少的。汇编语言是必不可少的。很多需要直接控制硬件的应用场合,很多需要直接控制硬件的应用场合,更是非用汇编语言不可。更是非用汇编语言不可。1.1 计算机系统概述计算机程序设计语言计算机程序设计语言机器语言机器语言汇编语言汇编语言高级语言高级语言
2、0或或1组成的代码组成的代码使用指令集编写程序的规则使用指令集编写程序的规则B8 64 0005 00 01一种符号语言一种符号语言用助记符表示操作码用助记符表示操作码MOV AX,100ADD AX,256接近于人类自然语言的语法接近于人类自然语言的语法习惯及数学表达形式习惯及数学表达形式1.2 数制表示 数制的基数与权数制的基数与权基数:数制所使用的数码个数基数:数制所使用的数码个数例:十进制数使用例:十进制数使用09十个数,所以它的基数是十个数,所以它的基数是10权:数制每一权:数制每一位置位置所具有的值所具有的值例:例:6 8 4 5千千 百百 十十 个个103 102 101 100
3、十进制数各位的权十进制数各位的权是以是以10为底的幂为底的幂二进制数使用二进制数使用0、1两个数,两个数,它的它的“基基”?各各位的位的“权权”又又是是多少呢?多少呢?由由0、1二个数码构成,二个数码构成,基数基数为为2,第,第i位的位的权权为为2i,运算规则:逢二进一、借一作二运算规则:逢二进一、借一作二 二进制数(二进制数(Binary)101011B=125+024+123+022+121+120=43D一个二进制数按权展开求和就转换成了对应的十进制数一个二进制数按权展开求和就转换成了对应的十进制数8 4 2 1牢记!牢记!1 0 1 1 B23 22 21 20例:一个二进制数例:一个
4、二进制数各位的权各位的权基数说明符基数说明符 十六进制数(十六进制数(HexadecimalHexadecimal)14AFH=1163+4162+10161+15160=5295D 由由0、1、29、A、B、C、D、E、F十六个十六个数码构成。基数为数码构成。基数为16,第,第i位的权为位的权为16i运算运算 规则:逢十六进一、借一作十六规则:逢十六进一、借一作十六十六进制数是汇编语言的书写工具十六进制数是汇编语言的书写工具 数制转换(数制转换(1)1.非十进制数转换成十进制数非十进制数转换成十进制数按权展开求和按权展开求和2.十进制数转换成非十进制数十进制数转换成非十进制数整数部分与整数部
5、分与小数部分小数部分分别转换分别转换例例1:57D=111001B=39H57281222221407031110116 5716 3903除基数取余数除基数取余数高高低低2 数制转换(数制转换(2)例例2:十进制数转换成非十进制数(小数部分):十进制数转换成非十进制数(小数部分)0.625D=0.101B=0.AH0.625*2=1.251 0.25*2=0.50 0.5*2=110.625*16=10A乘基数取整数乘基数取整数57.625D=111001.101B=39.AH高高低低 数制转换(数制转换(3)3.二、十六进制数之间的转换二、十六进制数之间的转换二进制数二进制数 十六进制数十
6、六进制数 四位一组四位一组分组时如位数不够,分组时如位数不够,整数部分在最左边整数部分在最左边补零,小数部分在补零,小数部分在最右边补零最右边补零十六进制十六进制二进制二进制一位对应换成二进制数四位一位对应换成二进制数四位1100100.11011B=.010001101101 1000=64.D8H46D8 编码编码 ASC码:码:美国信息交换标准码,一般用美国信息交换标准码,一般用7bit 二进制编码二进制编码 来表示数字来表示数字、英文字母、符号等、英文字母、符号等例:例:0 的的ASCII是是 30H 9 的的ASCII是是 39Ha 的的ASCII是是 61HA的的ASCII是是 4
7、1HASCII值小于值小于20H的是不可显示字符的是不可显示字符BCD码:码:1位十进制数用位十进制数用4位二进制编码表示位二进制编码表示有符号数的表示法有符号数的表示法机器数:机器数:连同一个符号位在一起作为一个数叫机器数连同一个符号位在一起作为一个数叫机器数连符号一起数连符号一起数字化了的数字化了的数 机器数机器数正数的符号位用正数的符号位用0表示,负数符号位用表示,负数符号位用1表示表示原码原码最高有效位为符号位最高有效位为符号位例:设机器字长为例:设机器字长为8位,二进制数位,二进制数+10010和和-100001 其原码为:其原码为:00010010,10100001真值真值反码:对
8、于二进制正数,反码等于该数原码反码:对于二进制正数,反码等于该数原码 对于二进制负数,符号位为对于二进制负数,符号位为1,其余各位取反,其余各位取反例:设机器字长为例:设机器字长为8位,二进制数位,二进制数+1100101和和-1010001 其反码为:其反码为:01100101,10101110真值真值有符号数的表示法有符号数的表示法补码:对于二进制正数,补码等于该数原码补码:对于二进制正数,补码等于该数原码 对于二进制负数,符号位为对于二进制负数,符号位为1,其余各位取反,末位加,其余各位取反,末位加1例:设机器字长为例:设机器字长为8位,二进制数位,二进制数+1100101和和-1010
9、001 其补码为:其补码为:01100101,10101111有符号数的表示法有符号数的表示法1.3 Intel 80X86微处理器型号型号808680888028680386发布发布年份年份1978197919821986字长字长(位位)16163216晶体管数晶体管数(万个)(万个)2.92.913.427.5 主频主频(MHz)4.774.7762012.533数据数据总线总线宽度宽度(位位)16161632外部外部总线总线宽度宽度(位位)地址地址总线总线宽度宽度(位位)寻址寻址空间空间高速高速缓存缓存1681632202024321M1M16M4G无无无无无无有有型号型号80486Pe
10、ntium(586)发布发布年份年份1989199319951997字长字长(位位)32323232 晶体晶体 管数管数(万个万个)120160310330550750 主频主频(MHz)2510060166150200233333数据数据总线总线宽度宽度(位位)32646464外部外部总线总线宽度宽度(位位)地址地址总线总线宽度宽度(位位)寻址寻址空间空间高速高速缓存缓存32646464323236364G4G64G64G8KB8KB数数据据8KB指令指令PentiumPro(P6)Pentium II8KB数数据据8KB指令指令256KB二级高二级高速缓存速缓存32KB512KB二级高速二
11、级高速缓存,有独立封缓存,有独立封装和独立总线装和独立总线1.4 微型计算机(微型计算机(PCPC)系统)系统1981年,年,IBM公司,公司,8088CPU,IBM PC个人计算机个人计算机扩展型扩展型PC/XT,增强型,增强型IBM/AT(80286)各种各种32位位PC采用采用32位位Intel 80 x86CPU现在人们谈论的现在人们谈论的PC机是以机是以80 x86CPU构成的微型计算机系统构成的微型计算机系统复制复制ROM HMA(64KB)系统系统ROM128KB系统系统RAM640KB显示显示RAM128KB扩展扩展ROM128KBFFFFFFFF00100000000E000
12、0000C0000000A000000000000常规主存常规主存扩展主存扩展主存32位位PC主存主存(4GB)PC/XT 主存主存(1MB)系统系统RAM640KB显示显示RAM128KB扩展扩展ROM128KB系统系统ROM128KB实方式主存实方式主存 UMA(384KB)上位主存上位主存区区高端主高端主存区存区复制复制BIOS只能在保护方只能在保护方式使用式使用PCPC软件软件汇编语言的运行环境汇编语言的运行环境DOS操作系统操作系统Windows 的的MS-DOS环境环境汇编语言程序设计主要利用的一些软件:汇编语言程序设计主要利用的一些软件:编辑软件:编辑软件:EDIT;记事本;记事
13、本;Turbo C编辑器等编辑器等汇编程序:汇编程序:MASM 5.X;MASM 6.X;Turbo ASM 等等连接程序:连接程序:LINK.EXE调试程序:调试程序:DEBUG、Turbo Debugger等等1.5 8086微处理器地址总线地址总线20位位控制总线控制总线数据总线数据总线16AHBHCHDHALBLCLDLSPBPSIDICSDSSSESIP内部暂存寄存器内部暂存寄存器暂存寄存器暂存寄存器FREU控制系统1 2 3 4 5 6总线控制逻辑总线控制逻辑数据总线数据总线16ALU通用寄存器通用寄存器8088指令队列指令队列8088/8086外部总线外部总线数据总线数据总线地址
14、总线地址总线20位位执行部件执行部件EU总线接口部件总线接口部件BIU16位位控制总线EU控制系统ALUEU控制系统控制系统ALU数据总线数据总线16地址总线地址总线20位位控制总线AXBXCXDXSPBPAHALBHBLCHCLDHDLAXBXCXDX15 0通用寄存器通用寄存器累加器累加器基地址寄存器基地址寄存器计数器计数器数据寄存器数据寄存器8086/8088堆栈指针堆栈指针基址指针基址指针源变址源变址目的变址目的变址DISI 专用寄存器专用寄存器IP指令指针寄存器指令指针寄存器标志寄存器标志寄存器用来存放代码段的偏移地址,用来存放代码段的偏移地址,总是指向下一条指令的首地址总是指向下一
15、条指令的首地址FLAGS15 0OF DFIFTF SF ZFAFPFCF15 11 10 9 8 7 6 5 4 3 2 1 0进位标志进位标志奇偶标志奇偶标志半进位标志半进位标志零标志零标志符号标志符号标志中断标志中断标志单步标志单步标志溢出标志溢出标志方向标志方向标志 存储器组织与段寄存器存储器组织与段寄存器1 0字节字节7 6 5 4 3 2 1 00003H0002H0001H0000H12H40H35H18H(0002H)=40H(0000H)=18H 字:字:2个字节组成一个字(个字节组成一个字(16位)位)0003H0002H0001H0000H字字字字12H40H35H18H
16、注意:注意:机器内部访问存储器字单元机器内部访问存储器字单元时是以偶地址开始的,如果时是以偶地址开始的,如果以奇地址访问字单元,需要以奇地址访问字单元,需要访问两次存储器访问两次存储器12H15H14H13H双字:双字:4个字节组成双字(个字节组成双字(32位)位)双字双字地址为地址为0002H字字单元的内容为:单元的内容为:(0002H)=1240H例:地址为例:地址为0002H的单元内容为的单元内容为 (0002H)=40H同一个地址既可看作字节单元的地址,又可看作同一个地址既可看作字节单元的地址,又可看作字单元、双字单元或字单元、双字单元或4字单元的地址字单元的地址8086CPU有有20
17、条地址线条地址线 寻址能力寻址能力地址范围地址范围220=1M字节字节 指令指针寄存器指令指针寄存器IP16位位和地址有关的寄存和地址有关的寄存器器SP、BP、SI、DI16位位算术逻辑单元算术逻辑单元ALU16位位分段分段 每一段可以从每一段可以从1M空间的任空间的任一个能被一个能被16除尽的地址开始。除尽的地址开始。段内地址是段内地址是16位的位的00000FFFFFH00003H00002H00001H00000H 物理地址的形成物理地址的形成四个专门存放段地址的寄存器四个专门存放段地址的寄存器 CS:代码段寄存器:代码段寄存器 DS:数据段寄存器:数据段寄存器 SS:堆栈段寄存器:堆栈
18、段寄存器 ES:附加段寄存器:附加段寄存器每一个段寄存器可以确定每一个段寄存器可以确定一个段的起始地址一个段的起始地址16位段地址位段地址16位偏移地址位偏移地址15 015 020位物理地址位物理地址+19 00 0 0 0存放当前正在运行程序的段首地址存放当前正在运行程序的段首地址存放当前程序所用数据的段首地址存放当前程序所用数据的段首地址存放堆栈区域的段首地址存放堆栈区域的段首地址辅助数据区域的段首地址辅助数据区域的段首地址物理地址物理地址=段地址段地址16+偏移地址偏移地址 地址加法器地址加法器19 0物理地址物理地址段寄存器段寄存器 偏移地址偏移地址15 015 00000段地址段地
19、址例:例:(CS)=4232H,(,(IP)=66H,物理地址的形成物理地址的形成00001H00000H42320H42386H(物理地址)(物理地址)偏移量偏移量66H下一条指令下一条指令CSIP1.6 1.6 80868086的寻址方式的寻址方式寻址方式:寻找操作数的方式寻址方式:寻找操作数的方式指令系统:编制计算机程序的指令集合指令系统:编制计算机程序的指令集合指令指令操作码操作码操作数操作数程序:就是根据需要用指令编排出的操作顺序程序:就是根据需要用指令编排出的操作顺序机器指令机器指令 8B D9 8A 04 BF 00 20MOV BX,CXMOV AL,SIMOV DI,2000
20、H汇编语言指令格式汇编语言指令格式标号:标号:指令助记符指令助记符操作数操作数;注释;注释,az、AZ、09或某些特殊符号(或某些特殊符号(,-,?),?)第一个字符必须是字母或某些特殊符号(第一个字符必须是字母或某些特殊符号(,-,?),?)?不能单独使用?不能单独使用 标识符有效长度为标识符有效长度为31个字符个字符标识符标识符:例:例:MOV AL,80H1.立即数寻址立即数寻址操作数就包含在指令当中操作数就包含在指令当中MOV AL,80H ;将;将80H送入送入ALMOV AX,1090H ;将;将1090H送入送入AXMOV EAX,12345678H源操作数源操作数目的操作数目的
21、操作数例:例:立即数可以是立即数可以是8位、位、16位位、32位(位(386以后)以后)数值数值 立即数通常用来给寄存器赋值立即数通常用来给寄存器赋值 2.2.寄存器寻址寄存器寻址操作数在操作数在8位、位、16位(或位(或32位)寄存器中位)寄存器中INC CX ;将;将CX的内容加的内容加1ROL AH,1 ;将;将AH中的内容循环左移一位中的内容循环左移一位MOV AX,BXMOV AX,1090H寄存器可以是寄存器可以是AX、BX、CX、DX、SI、DI、SP、BP AH、AL、BH、BL、CH、CL、DH、DL 在一条指令中,可以对源操作数采用寄存器寻址,也可以对目在一条指令中,可以对
22、源操作数采用寄存器寻址,也可以对目标操作数采用寄存器寻址,还可以两者都采用寄存器寻址方式标操作数采用寄存器寻址,还可以两者都采用寄存器寻址方式例:例:3.3.存储器寻址存储器寻址 操作数在存储器中,其有效地址(操作数在存储器中,其有效地址(EA)包含在指令中的寻址方式包含在指令中的寻址方式注意:立即数寻址和直接寻址的书写格式,注意:立即数寻址和直接寻址的书写格式,直接寻址的地址要放在方括号中直接寻址的地址要放在方括号中ES:例:例:MOV AX,1070H ;DS段的段的1070H和和1071H 两单元的内容传送到两单元的内容传送到AX中中(1)直接寻址)直接寻址物物理理地地址址存储器存储器代
23、代码码段段数数据据段段50000H51070HOP 70108967.00000H51071H假设假设DS=5000H,地址,地址为为51070H字存储单元字存储单元的内容是的内容是6789H。执行执行 MOV AX,1070H6789AXAH ALDS1650000H1070H+51070H内部地址加内部地址加法器完成法器完成有效地址(偏移地址)有效地址(偏移地址)例:例:MOV AX,VALUE 或或 MOV AX,VALUE符号地址符号地址MOV 1000H,AL例:例:操作数在存储器中,操作数的有效地址是操作数在存储器中,操作数的有效地址是寄存器寄存器的内容。的内容。BX、BPSI、D
24、I 之一之一注:如果没有特殊说明,用寄存器注:如果没有特殊说明,用寄存器BP寻址时,寻址时,段寄存器是段寄存器是SS,其余为数据段寄存器,其余为数据段寄存器DS。DS1650000H1234H+51234H内部地址加内部地址加法器完成法器完成例例1:假设(:假设(DS)=5000H,(,(SI)=1234H,51234H字单元的内容字单元的内容是是6789H 执行指令执行指令MOV AX,SI偏移地址,偏移地址,SI的内容的内容物理地址物理地址(AX)=6789H存储器存储器数数据据段段50000H51234H8967.00000H51235H例例2:假设(:假设(SS)=4000H,(,(B
25、P)=1234H,(CX)=6789H执行该条指令执行该条指令MOV BP,CXSS1640000H1234H+41234H内部地址加内部地址加法器完成法器完成存储器存储器堆堆栈栈段段40000H41234H.00000H41235H偏移地址,偏移地址,BP的内容的内容物理地址物理地址8967(CX)=6789H带位移量的寄存器间接寻址带位移量的寄存器间接寻址有效地址有效地址=BXBPSI DI+8位位移量位位移量16位位移量位位移量执行该指令后,(执行该指令后,(AX)=55AAH例:例:假设(假设(DS)=5000H,(,(DI)=3678H 548ACH字字存储单元的内容是存储单元的内容
展开阅读全文