书签 分享 收藏 举报 版权申诉 / 230
上传文档赚钱

类型最新汇编语言程序设计32教室版课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:5181216
  • 上传时间:2023-02-16
  • 格式:PPT
  • 页数:230
  • 大小:2.69MB
  • 【下载声明】
    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字字存储单元的内容是存储单元的内容

    26、是55AAH50000H 3678H 1234H548ACH+带位移量的寄存器间接寻带位移量的寄存器间接寻址址寄存器相对寻址寄存器相对寻址MOV AX,1234H DI 执行执行 MOV AX,DI+1234H 寄存器间接寻寄存器间接寻址的物理地址址的物理地址单元是单元是548ACH(4 4)基址变址寻址基址变址寻址 操作数的有效地址是一个基址寄存器的内容加上操作数的有效地址是一个基址寄存器的内容加上一个变址寄存器的内容一个变址寄存器的内容有效地址有效地址EA=+BXBPSIDI语句执行后(语句执行后(17000H)和()和(17001H)AX例:例:MOV AX,BX+SI假设假设(DS)=

    27、1000H,(,(BX)=5000H,(,(SI)=2000H则:有效地址为:(则:有效地址为:(BX)+(SI)=7000H 物理地址为:物理地址为:10000H+7000H=17000HMOV AX,BX SI(5 5)相对基址变址寻址相对基址变址寻址有效地址有效地址EA=+带位移量的基址变址寻址带位移量的基址变址寻址+BXBPSIDI8位位移量位位移量16位位移量位位移量语句执行后(语句执行后(17002H)和()和(17003H)AX例:例:MOV AX,BX+SI+2假设假设(DS)=1000H,(,(BX)=5000H,(,(SI)=2000H则:有效地址为:(则:有效地址为:(B

    28、X)+(SI)+2=7002H 物理地址为:物理地址为:10000H+7002H=17002HMOV AX,2BXSI综合练习综合练习假设:假设:BX=0158H,DI=10A5H,位移量,位移量=1B57H,DS=2100H 指令没有使用前缀。指令没有使用前缀。直接寻址:有效地址直接寻址:有效地址=物理地址物理地址=1B57H21000H+1B57H=22B57H 寄存器间接寻址(寄存器为寄存器间接寻址(寄存器为BX):):有效地址有效地址=物理地址物理地址=0158H21000H+0158H=21158H BX寄存器相对间接寻址:寄存器相对间接寻址:有效地址有效地址=物理地址物理地址=01

    29、58H+1B57H=1CAFH21000H+1CAFH=22CAFH综合练习综合练习假设:假设:BX=0158H,DI=10A5H,位移量,位移量=1B57H,DS=2100H 指令没有使用前缀。指令没有使用前缀。变址寻址(寄存器为变址寻址(寄存器为DI):10A5H21000H+10A5H=220A5H10A5H+1B57H=2BFCH21000H+2BFCH=23BFCH有效地址有效地址=物理地址物理地址=DI寄存器相对变址寻址:寄存器相对变址寻址:有效地址有效地址=物理地址物理地址=综合练习综合练习 基址变址寻址(基址变址寻址(BX为基址寄存器,为基址寄存器,DI为变址寄存器)为变址寄存

    30、器)有效地址有效地址=物理地址物理地址=0158H+10A5H=11FDH21000H+11FDH=221FDH 相对的基址变址寻址(相对的基址变址寻址(BX为基址寄存器,为基址寄存器,DI为变址寄存器)为变址寄存器)有效地址有效地址=物理地址物理地址=0158H+10A5H+1B57H=2D54H21000H+2D54H=23D54H假设:假设:BX=0158H,DI=10A5H,位移量,位移量=1B57H,DS=2100H 指令没有使用前缀。指令没有使用前缀。寻址方式总结寻址方式总结操作数寻址操作数寻址立即数寻址立即数寻址寄存器寻址寄存器寻址存储器寻址存储器寻址直接寻址直接寻址寄存器间接寻

    31、址寄存器间接寻址寄存器相对寻址寄存器相对寻址基址变址寻址基址变址寻址相对基址变址寻址相对基址变址寻址数据段基址寻址数据段基址寻址堆栈段基址寻址堆栈段基址寻址变址寻址变址寻址作业:作业:1.11 1.15 1.17 1.19 1.20 1.22 1.24第2章 8086的指令系统2.1 数据传送类指令2.2 算术运算类指令2.3 位操作类指令2.4 控制转移类指令2.5 串操作类指令2.6 处理机控制类指令2.1 2.1 数据传送类指令数据传送类指令指令系统指令系统数据传送指令数据传送指令算术指令算术指令逻辑指令逻辑指令串处理指令串处理指令控制转移指令控制转移指令处理机控制指令处理机控制指令通用

    32、数据传送指令通用数据传送指令堆栈操作指令堆栈操作指令标志传送指令标志传送指令地址传送指令地址传送指令输入输出指令输入输出指令8位或位或16位通用寄存器位通用寄存器AX、BX、CX、DXBP、SP、SI、DI段寄存器段寄存器CS、DS、ES、SS存储器存储器立即数立即数MOV指令数据传送方向示意图指令数据传送方向示意图CS不能做目不能做目的操作数的操作数1.传送指令传送指令格式:格式:MOV DST,SRC目的目的源源功能:把一个字节或一个字从源操作数功能:把一个字节或一个字从源操作数SCR送至送至 目的操作数目的操作数DST,源操作数不改变。,源操作数不改变。注意:源和目的操作数的类型要一致,

    33、即同时为字节或同时为字注意:源和目的操作数的类型要一致,即同时为字节或同时为字段寄存器段寄存器CS、DS、ES、SS立即数立即数存储器存储器8位获位获16位通用寄存器位通用寄存器AX、BX、CX、DXBP、SP、SI、DIIPMOV指令不影指令不影响标志位响标志位2.1.1 2.1.1 通用数据传送指令通用数据传送指令例:例:MOV AX,1000HMOV AL,EMOV AX,2BPSI;立即数送到;立即数送到AX;立即数送到;立即数送到AL,E的的ASCII码码;存储单元的内容送到;存储单元的内容送到AX16(SS)+(BP)+(SI)+2如果如果BP换成换成BX?判断对错判断对错MOV

    34、5,ALMOV BX,SIMOV DS,1000HMOV CS,AXMOV AX,DXMOV SI,SIMOV SI,AX判断对错判断对错MOV BX,ALMOV AX,DI+SIMOV DS,ESMOV AL,AHMOV DS,AXMOV SI,DIMOV 2SI,AX2.交换指令交换指令XCHG格式:格式:XCHG OPRD1,OPRD2功能:操作数功能:操作数OPRD1的内容与操作数的内容与操作数OPRD2的的 内容交换内容交换OPRD1OPRD1和和OPRD2OPRD2可以是通用寄存器和存储单元可以是通用寄存器和存储单元(两个操作数不能同时为存储单元)可以采用(两个操作数不能同时为存储

    35、单元)可以采用各种存储器寻址方式各种存储器寻址方式注意:不允许使用段寄存器、立即数注意:不允许使用段寄存器、立即数例:例:XCHG AL,AH XCHG SI,BX XCHG SI+3,AL XCHG DX,DI+BX+3格式:格式:XLAT功能:完成一个字节的查表转换。功能:完成一个字节的查表转换。把累加器把累加器AL中的值,转换成以中的值,转换成以BX 为表基址的表中值为表基址的表中值+BX AL3.换码指令换码指令XLAT注意:表的长度不能超过注意:表的长度不能超过256个字节个字节BXBX+ALAL=XX换码指令的功能换码指令的功能TABLE.XX例:用查表法查求例:用查表法查求 3

    36、的平方,假设数据表已的平方,假设数据表已经存放在经存放在2000H开始的内存中。开始的内存中。MOV BX,2000HMOV AL,3XLAT执行后执行后AL=2000H2009H51H40H31H24H19H10H09H04H01H00H.MOV BX,2000HBXXLATBX+AL09H主程序主程序子程序子程序1子程序子程序2CS:IPCS:IP堆栈堆栈2.1.2 2.1.2 堆栈操作指令堆栈操作指令00000H50000H52000H堆栈段堆栈段SP假设:假设:SS=5000H,SP=2000H格式:格式:PUSH SRC功能:把源操作数功能:把源操作数SRC 的的16位数据压入位数据

    37、压入 堆栈堆栈例:例:AX=8A9BH执行执行 PUSH AX SP自动减自动减2 将源操作数的内容传送到将源操作数的内容传送到 SP指向的单元指向的单元8A9B1.1.进栈指令进栈指令PUSH PUSH 00000H50000H52000H堆栈段堆栈段SP假设:假设:SS=5000H,SP=1FFEH2.2.出栈指令出栈指令POPPOP格式:格式:POP DST功能:从堆栈中弹出功能:从堆栈中弹出16位数据到目的操作数位数据到目的操作数DST,SP自动加自动加2例:例:执行执行 POP BX将将SP指向单元的内容传送到指向单元的内容传送到 目的操作数目的操作数SP自动加自动加28A9B9B8

    38、A执行后执行后 BX=H可以是通用寄存器、段寄存器可以是通用寄存器、段寄存器(CS除外)和字存储单元除外)和字存储单元PUSH reg POP regPUSH mem POP memPUSH segreg POP segregPUSH data除除CS的所有的所有段寄存器段寄存器8086以后以后1.标志寄存器传送标志寄存器传送(1)标志送标志送AH指令指令LAHF格式:格式:LAHF功能:标志寄存器的低功能:标志寄存器的低8位对应的传送到寄存器位对应的传送到寄存器AHFLAG OFDF IF TFSFZF AF PF CFAH150702.1.3 2.1.3 标志传送指令标志传送指令格式:格式

    39、:SAHF功能:寄存器功能:寄存器AH的内容对应的送至标志寄存的内容对应的送至标志寄存 器的低器的低8位位(2)AH送标志指令送标志指令SAHFFLAG OFDF IF TFSFZF AF PF CFxxxxxxxAHx70(3)标志进栈指令标志进栈指令PUSHF格式:格式:PUSHF功能:功能:SP-2,把标志寄存器的内容(,把标志寄存器的内容(16位)压入堆栈位)压入堆栈(4)标志出栈指令标志出栈指令POPF格式:格式:POPF功能:把当前栈顶的一个字传送到标志寄存器,功能:把当前栈顶的一个字传送到标志寄存器,SP+2指令格式指令格式功能功能说明说明CLCSTCCMCCLDSTDCLIST

    40、I清除进位标志清除进位标志置进位标志置进位标志取反进位标志取反进位标志清除方向标志清除方向标志置方向标志置方向标志清除中断标志清除中断标志置中断标志置中断标志CF=0CF=1CF=CFDF=0DF=1IF=0IF=12.标志位操作标志位操作1.有效地址送指令有效地址送指令LEA格式:格式:LEA REG,SRC16位通用寄存器位通用寄存器功能:把源操作数的有效功能:把源操作数的有效地址地址传送到目的操传送到目的操 作数作数REG寄存器中寄存器中例:例:LEA AX,2728H ;将;将2728单元的有效地址送单元的有效地址送AX,执行后,执行后,AX=2728H LEA BX,BP+SI ;指

    41、令执行后,;指令执行后,BX的内容为的内容为 BP+SI的值的值注意:注意:LEA 和和 MOV 的区别的区别2.1.4 2.1.4 地址传送指令地址传送指令格式:格式:LDS REG,SRC功能:源操作数功能:源操作数 SRC所指向的存储单元的内容所指向的存储单元的内容 送到目的寄存器送到目的寄存器REG中接下来存储单元中接下来存储单元 的内容送到的内容送到数据段寄存器数据段寄存器DS。2.2.指针送指令指针送指令LDS、LES例:例:LDS DI,2130H2130H2133H 56347812 执行后执行后 DS=DI=LES对应的段寄存为对应的段寄存为ES存储器存储器78563412H

    42、H 输入指令输入指令ININ格式:格式:IN 累加器,端口地址累加器,端口地址功能:从一个端口读取一个字节或一个字,传功能:从一个端口读取一个字节或一个字,传 送到送到AL或或AX端口地址可以直接给出端口地址可以直接给出或由或由DX寄存器间接给出寄存器间接给出注意:外部设备最多可有注意:外部设备最多可有65536个个I/O端口端口(0000FFFFH),),只有前只有前256个端口地址可个端口地址可在指令中直接给出(在指令中直接给出(00FFH)2.1.5 2.1.5 输入输出指令输入输出指令例:例:IN AL,50H ;从;从50H端口读入端口读入8位数据到位数据到ALIN AX,70H ;

    43、从;从70H端口读入端口读入16位数据到位数据到AX直接寻址或长格式直接寻址或长格式间接寻址或短格式间接寻址或短格式IN AL,DX ;从;从DX所指的端口中读取一个字节所指的端口中读取一个字节IN AX,DX ;从;从DX所指的端口读取一个字所指的端口读取一个字2.2.输出指令输出指令OUTOUT格式:格式:OUT 端口地址,累加器端口地址,累加器功能:将功能:将AL中的一个字节或中的一个字节或AX中的一个字输出中的一个字输出 到指定端口到指定端口例:例:OUT 5,AL ;将;将AL寄存器的内容输出到端口寄存器的内容输出到端口5 OUT DX,AL ;将;将AL的内容输出到的内容输出到DX

    44、所指向的端口所指向的端口OUT DX,AX ;将;将AX的内容输出到的内容输出到DX所指向的端口所指向的端口判断对错:判断对错:OUT 258,ALOUT DX,BLIN AL,1234HIN AL,BHOUT 120,ALOUT DX,ALIN AL,80HIN AL,DX 判断对错:判断对错:PUSH ALPOP CSXCHG DS,BXXCHG BX,SIPOP BHXCHG AX,1234H2.2 算数运算类指令1.加法指令加法指令ADD格式:格式:ADD DST,SRC功能:两个操作数相加,结果送至目的操作数功能:两个操作数相加,结果送至目的操作数 DST,源操作数不变源操作数不变操

    45、作数可以是字节、字操作数可以是字节、字例:例:ADD AL,50H ;AL的内容和的内容和50H相加,结果相加,结果AL中中;CX的内容和的内容和1000H相加,结果放相加,结果放 在在CX中中ADD CX,1000H;DI和和SI的内容相加,结果放在的内容相加,结果放在DI中中ADD DI,SI;BX+DI 连续两个存储单元的内容连续两个存储单元的内容 和和AX内容相加,结果放在内容相加,结果放在BX+DI 和和BX+DI+1所指的存储单元中所指的存储单元中ADD BX+DI,AX ADD AX,BX+2000H;BX+2000H所指的两个单元的所指的两个单元的内内 容和容和AX的内容相加,

    46、结果在的内容相加,结果在AX 中中 加法指令对标志位的影响加法指令对标志位的影响 ZF 零标志零标志 结果为零结果为零ZF=1,否则,否则ZF=0 SF 符号标志符号标志 结果为负结果为负SF=1,否则,否则SF=0 CF 进位标志进位标志 结果最高有效位有进位结果最高有效位有进位 CF=1,否则,否则CF=0 AF 半进位标志半进位标志 低低4位向高位向高4位有进位位有进位AF=1,否则否则AF=0 PF 奇偶标志奇偶标志 低低8位位1的个数为偶数的个数为偶数PF=1,否,否则则PF=0对对OF SF ZF AF PF CF 六个标志产生影响六个标志产生影响 1 0 0 1 1 1 0 0+

    47、1 0 0 0 1 0 1 0 0 0 1 0 0 1 1 0CF=SF=AF=例:例:9CH+8AH=26H101ZF=0PF=0 溢出标志溢出标志OF溢出:超出数据位能表示的范围溢出:超出数据位能表示的范围8位二进制数位二进制数 0255(0 28)-128+127(-27+27-1)16位二进制数位二进制数 065535(0 216)-32768+32767(-215215-1)若两个操作数的符号相同,而结果的若两个操作数的符号相同,而结果的符号与之相反时,符号与之相反时,OF=1,否则,否则OF=0OF标志是根据操作数的符标志是根据操作数的符号变化来设置的号变化来设置的例:例:1 0

    48、0 1 1 1 0 0 +1 0 0 0 0 1 1 0 如果两个同符号数相加,结果符号位发生了如果两个同符号数相加,结果符号位发生了变化,则表示溢出变化,则表示溢出0 0 1 0 0 0 1 0OF=1符号位变化了,表示结符号位变化了,表示结果超出了果超出了8位二进制数表位二进制数表示的数据范围示的数据范围 0 0 0 0 1 0 0 1+0 1 1 1 1 1 0 01 0 0 0 0 1 0 1OF=1符号位变符号位变化了化了例例2:0 0 0 0 1 0 0 1-1 1 1 1 1 1 0 0例例3:0 0 0 0 1 1 0 1符号位没符号位没变变OF=0 1 0 0 0 1 0 0

    49、 1-1 1 1 1 1 1 0 0OF=?2.2.带进位加法指令带进位加法指令ADCADC格式:格式:ADC DST,SRC功能:两个操作数相加再加上进位标志功能:两个操作数相加再加上进位标志CF,结果,结果 送至目的操作数送至目的操作数DST,源操作数不变源操作数不变操作数可以是字节、字操作数可以是字节、字AX=MOV SI,2000H MOV AX,SI MOV DI,3000H ADD AX,DI MOV SI,AX MOV AX,SI+2 ADC AX,DI+2 MOV SI+2,AX 例:编写两个四字节的无符号数相加的程序段,两个数分别例:编写两个四字节的无符号数相加的程序段,两个

    50、数分别 放在放在2000H、3000H开始的单元,要求结果放在开始的单元,要求结果放在2000H开始的单元开始的单元 563412F0DEBC9A782000H3000HSIMOV AX,SIHDIADD AX,DIMOV DI,3000HMOV SI,2000H56783568HCF=1AX=MOV SI,2000H MOV AX,SI MOV DI,3000H ADD AX,DI MOV SI,AX MOV AX,SI+2 ADC AX,DI+2 MOV SI+2,AX 例:编写两个四字节的无符号数相加的程序段,两个数分别例:编写两个四字节的无符号数相加的程序段,两个数分别 放在放在200

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:最新汇编语言程序设计32教室版课件.ppt
    链接地址:https://www.163wenku.com/p-5181216.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库