汇编语言 第3章 80x86指令系统和寻址方式.pdf
《汇编语言 第3章 80x86指令系统和寻址方式.pdf》由会员分享,可在线阅读,更多相关《汇编语言 第3章 80x86指令系统和寻址方式.pdf(146页珍藏版)》请在咨信网上搜索。
1、安徽理工人学计算机科学与技术系 咨敬龙汇编语言第3章 80 x86指令系统和寻址方式敖皆要求:1.掌握指令系统的基本概念:指令格式、寻址方 式、指令类型;掌握8086/8088指令系统中,各指 令的格式、功能和注意事项。2.了解其他的寻址方式和指令类型。安徽理工人学计算机科学与技术系 咨敬龙汇编语言相关概念一、什么是指令系统?计算机的指令系统就是指该计算机能够执行的 全部指令的集合。每种计算机都有它支持的指令集合。16位8086指令系统是整个Int el 80 x86系列微处理器指令系统的基础。安徽理工人学计算机科学与技术系 咨敬龙汇编语言、指令格式指令由操作码和操作数两部分组成O操作码 操作
2、数-操作数操作码说明计算机要执行哪种操作,如传送、运算、移位、跳转等操作,它是指令中不可缺少的组成部分。操作数是指令执行的参与者,即各种操作的对象。有些指令不需要操作数,通常的指令都有一个或两个 操作数,也有个别指令有3个甚至4个操作数,通常成为一 地址指令、二地址指令、三安徽理工人学计算机科学与技术系 咨敬龙汇编语言三、学习指令的注意事项 指令的功能该指令能够实现何种操作。通常指令助 记符就是指令功能的英文单词或其缩写形式。指令支持的寻址方式该指令中的操作数可以采用何 种寻址方式。指令对标志的影响该指令执行后是否对各个标志位 有影响,以及如何影响。其他方面该指令其他需要特别注意的地方,如指令
3、 执行时的约定设置、必须预置的参数、隐含使用的寄存器等。安徽理工人学计算机科学与技术系 咨敬龙汇编语言3.1 80 x86寻址方式寻址、寻址方式的概念指令中操作数字段实质上是指出操作数存放于何处。一 般来说,操作数可以跟随在指令操作码之后,称为立即数;操作数也可以存放在CPU内部的寄存器中,称为寄存器操作 数。绝大多数的操作数存放在内存储器中,称为存储器操作 数。指令指定操作数的位置,即给出地址信息,在执行时需 要根据这个地址信息找到需要的操作数。这种寻找操作数的 过程称为寻址,而寻找操作数的方法称为寻址方式。安徽理工人学计算机科学与技术系 咨敬龙汇编语言指令的助记符格式:指令助忆符操作数1,
4、操作数2,操作数3 ;注释指令助忆符体现该指令的功能,它对应一条二进制编码的机器 指令。指令的操作数个数由该指令确定,可以没有操作数,也可以 有一个、二个或三个操作数。绝大多数指令的操作数要显式的写出 来,但也有指令的操作数是隐含的,不需要在指令中写出。注:当指令含有操作数,则在书写时必须遵守:指令助记符和操作数之间要有分隔符,分隔符可以是若干个空格 或TAB键;:如果指令含有多个操作数,那么,操作数之间要用逗号“,“分开:指令后面还可以书写注释内容,不过,要在注释之前书写分号安徽理工人学计算机科学与技术系 咨敬龙汇编语言3.1.1与数据有关的寻址方式以MOV指令为例:?哂证1寄存器寻址;直接
5、寻址;寄存器间接寻址【寄存器相对寻址,基址变址寻址,相对基址变址寻址MOV AX,3069HMOV AL,BHMOV AX,2000H MOV AX,BX MOV AX,COUNT SIMOV AX,BP DI MOV AX,MASK BX SI 安徽理工人学计算机科学与技术系 咨敬龙汇编语言L立即寻址方式定义:操作数作为指令的一部分而直接写在指令中,这种操作数称为立即数,这种寻址方式也就称为立即数 寻址方式。汇编格式:n(n为立即操作数,是用8位或16位二进制 补码表示的有符号数)功能:操作数存放在存储器,指令下一单元的内容为立 即操作数n。图形表不:_指令操作数n安徽理工人学计算机科学与技
6、术系 咨敬龙汇编语言【例3】MOV AX,4576H 执行后该例中源操作数为立即寻址方式,在指令的下一单元。执行:4576H一AX执行后:(AX)=4576H(AX)=?立即数为4576H,存放安徽理工人学计算机科学与技术系 咨敬龙汇编语言2.寄存器寻址方式定义:指令所要的操作数已存储在某寄存器中,或把目标 操作数存入寄存器。把在指令中指出所使用寄存器(即:寄存器的助记符)的寻址方式称为寄存器寻址方式。汇编格式:R 其中R表示寄存器名。功能:操作数直接存放在寄存器R中。图形表示:指令 I 寄存器寄存器R操作数安徽理工人学计算机科学与技术系 咨敬龙汇编语言指令中可以引用的寄存器及其符号名称如下:
7、8位寄存器有:AH、AL、BH、BL、CH、CL、DH和DL 等;16位寄存器:AX、BX、CX、DX、SL DL SP、BP和段 寄存器等;源操作数是寄存器寻址方式如:ADD VARW,AX MOV VARB,BH等。其中:VARW和VARB是字和字节类型的内存变量。目的操作数是寄存器寻址方式如:ADD BH,78h ADD AX,1234h:源和目的操作数都是寄存器寻址方式如:MOV AX,BX MOV DH,BL等。安徽理工人学计算机科学与技术系 咨敬龙汇编语言注:由于指令所需的操作数已存储在寄存器中,或 操作的结果存入寄存器,这样,在指令执行过程中,会减少读/写存储器单元的次数,所以,
8、使用寄存器 寻址方式的指令具有较快的执行速度。通常情况下,提倡在编写汇编语言程序时,应尽可能地使用寄存 器寻址方式,但也不要把它绝对化。安徽理工人学计算机科学与技术系 咨敬龙汇编语言【例3.2】下列程序执行后,(AX)=?,(BX)=?MOV AX,1234HMOV BX,5678HADD AX,BX解释:该程序中MOV指令为数据传送指令操作符,ADD指 令为加法指令操作符,三条指令皆为双操作数指令。第一、二条指令AX、BX皆为目的操作数地址,为寄存器寻址方式。第三条指令中,AX为目的操作数地址,BX为源操作数地址。源地址和目的地址皆为寄存器寻址方式。执行:1234H 一 AX5678H 一
9、BX(AX)+(BX)一AX执行后:(AX)=68ACH,(BX)=5678H安徽理工人学计算机科学与技术系 咨敬龙汇编语言3.直接寻址方式定义:指令所要的操作数存放在内存中,在指令中直接给 出该操作数的有效地址,这种寻址方式为直接寻址方式。汇编格式:含有变量的地址表达式。功能:指令下一字单元的内容是操作数的偏移地址EA。图形表不:段基地址安徽理工人学计算机科学与技术系 咨敬龙汇编语言【例33】执行指令:MOV BX,1234H 设(DS)=2000Ho执行后:(AX)=?苗示:执行:(21234H)一BX 执行后:(BX)=5312H 安徽理工人学计算机科学与技术系 咨敬龙汇编语言在通常情况
10、下,操作教存放在数据段中,所以,其物理地 址将由数据段寄存器DS和指令中给出的有效地址直接形成,但 如果使用段超越南缴,那么,操作教可存放在其它段。例如:MOV ES:1OOOH,AX注意:立即寻址方式和直接寻址方式的书写格式不同,直接寻 址的地址要写在括号“”,内。在程序中,直接地址通常 用内存变量名来表示,如:MOVBX,VARW,其中,VARW是 内存字变量。试比较下列指令中源操作教的寻址方式(VARW是内存字 变量八MOV AX,1234HMOV AX,1234H前者是立即寻址,后者是直接寻址MOV AX,VARWMOV AX,VARW两者是等效的,均为直接寻址安徽理工人学计算机科学与
11、技术系 咨敬龙汇编语言4.寄存器间接寻址方式定 义:操作数在存储器中,操作数的有效地址用SI、DL BX和BP等四个寄存器之一来指定,称这种寻址方式为寄存 器间接寻址方式。汇编格式:R功 能:操作数存放在存储器,寄存器R存放操作数的偏移 地址EA。图形表示:段基地址安徽理工人学计算机科学与技术系 咨敬龙汇编语言【例3.4假设有指令:MOV BX,DI,在执行时,(DS)=1000H,执行指令后,BX的值是什么?(DI)=2345H,存储单元12345H的内容是4354H。问安徽理工人学计算机科学与技术系 咨敬龙汇编语言在不使用段超越前缀的情况下,有下列规定::若有效地址用SI、DI和BX等之一
12、来指定,则其缺省的段寄存 器为DS;:若有效地址用BP来指定,则其缺省的段寄存器为SS(即:堆 栈段)。该寻址方式物理地址的计算方法如下:BX物理地址PA=16XDS+SIBX500005100051001510025100375 1c l48|6BSP 一SP=1000H1 _SPSP=1002H6Br 6b48H 489A9A282811(1)执行前(2)执行后安徽理工人学计算机科学与技术系 咨敬龙汇编语言:“N输入指令输入指令用来从指定的外设寄存器取信息送入累加器。它有几种形式:长格式:IN AL,PORT(字节)IN AX,PORT(字)执行操作:(AL)一(PORT)(字节)(AX)
13、一(PORT+1,PORT)(字)短格式:IN AL,DX(字节)IN AX,DX(字)执行操作:(AL)一(DX)(字节)(AX)(DX)+1,(DX)(字)安徽理工人学计算机科学与技术系 咨敬龙汇编语言注意:该指令的作用是从端口中读入一个字节 或字,并保存在寄存器AL或AX中。如果某输 入设备的端口地址在0255范围之内,那么,可在指令IN中直接给出,否则,要把该端口地 址先存入寄存器DX中,然后在指令中由DX来 给出其端口地址。安徽理工人学计算机科学与技术系 咨敬龙汇编语言例如:IN AL,60H;从端口60H读入一个字节到AL中IN AX,20H;把端口 20H、21H按“高高低低”组
14、成 的字读入AXMOV DX,2F8HIN AL,DX;从端口2F8H读入一个字节到AL中IN AX,DX;把端口 2F8H、2F9H按“高高低低”组 成的字读入AX安徽理工人学计算机科学与技术系 咨敬龙汇编语言:.OUT输出指令输出指令用来把累加器的内容送往指定的外设存储器,它有几 种形式::长格式:OUT PORT,AL(字节)OUT PORT,AX(字)执行操作:(PORT)(AL)(字节)(PORT+1,PORT)(AX)(字)。短格式:OUT DX,AL(字节)OUT DX,AX(字)执行操作:(DX)(AL)(字节)(DX)+1,(DX)(AX)(字)安徽理工人学计算机科学与技术系
15、 咨敬龙汇编语言注意:该指令的作用是把寄存器AL或AX的内容输出到指定端口。如果某输出设备的端口地址在0255范围之内,那么,可在指令 OUT中直接给出,否则,要把该端口地址先存入寄存器DX中,然后在指令中由DX来给出其端口地址。例如:OUT 61H,AL;把AL的内容输出到端口61H中OUT 20H,AX;把AX的内容输出至U端口20H、21H中MOV DX,3C0HOUT DX,AL;把AL的内容输出至U端口3C0H中OUT DX,AX;把AX的内容输出至U端口3C0H、3C1H中安徽理工人学计算机科学与技术系 咨敬龙汇编语言:*XLAT换码指令转换指令有两个隐含操作数BX和AL。格 式:
16、XLAT OPR 或 XLAT执行操作:(AL)一(BX)+(AL)功 能:其功能是把BX的值作为内存字节数 组首地址、下标为AL的数组元素的俏传送给 ALO安徽理工人学计算机科学与技术系 咨数龙 汇编语言例:MOV BX,offset table;(BX)=0040HMOV AL,3 XLAT指令执行后(AL)=33H把BX的侑作为内存字 节数组首地址、下标 为AL的数组元素的侑 传送给AL。数据段DS 一DS=F000Ht a ble(BX)一30HF0040131HF0041(AL)=3 v32HF004233HF0043安徽理工人学计算机科学与技术系 咨数龙 汇编语言:地址传送指令取有
17、效地址指令LEA:指令LEA是把一个内存变量的有效地址送给指定的寄存器O其指令格式如下:LEA Reg,Mem该指令通常用来对指针或变址寄存器BX、DI或SI等置初值之用O取段寄存器指令:该组指令的功能是把内存单元的一个“低字”传送给指令中指定的16位寄存器,把随后的一个“高字”传给相应的段寄存器(DS、ES)o其指令格式如下:II安徽理工人学计算机科学与技术系 咨敬龙汇编语言例:LEA BX,BX+SI+0F62HLDS SI,10H LES DL BXTABLE 一 3000H:1000H;(ES)=3000HMOV BX,TABLE(BX)=0040HMOV BX,OFFSET TABL
18、E(BX)=1000HLEA BX,TABLE(BX)=1000HLDS BX,TABLE(BX)=0040H(DS)=3000HLES BX,TABLE(BX)=0040H安徽理工人学计算机科学与技术系 咨敬龙汇编语言标志寄存器传送指令标志送AH指令:LAHF执行操作:(AH)一(FLAGS的低字节)AH送标志寄存器指令:SAHF执行操作:(FLAGS的低字节)一(AH)标志进栈指令:PUSHF执行操作:(SP)-(SP)-2(SP)+1,(SP)(FLAGS)标志出栈指令:POPF执行操作:(FLAGS)DEC、NEG、CMP4乘法指令 MUL、IMUL 除法指令 DIV、IDIV卜进制调
19、整指令 DAA、DAS、AAA、AAS、AAM、AAD安徽理工人学计算机科学与技术系 咨数龙 汇编语言1.加法指令:力口法指令:ADD DST,SRC功能:将目的操作数与源操作数相加,结果存入目的地址中,源地 址咆内容不改变。执行操作:(DST)(SRC)+(DST):带进位加法指令:ADC DST,SRC功熊:将目的操作数加源操作数再加低位进位,结果送目的地址。执行操作:(DST)(SRC)+(DST)+CF:加II指令:INC OPR功能:将目的操作数加L结果送目的地址。执行操作:(OPR)(OPR)+1注意:除INC指令不影响CF标志外)均对条件标志位有影响。安徽理工人学计算机科学与技术
20、系 咨敬龙汇编语言:标志寄存器FLAGS的介绍指令的执行与标志有很大关系。标志分成两类:状态标志用来记录程序运行结果的状态信息,许多指令的 执行都将相应地设置它。它们分别是:CF ZF SF PF OF AF控制标志可由程序根据需要用指令设置,用于控制处理器 执行指令的方式。它们分别是:DF IF TF15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0安徽理工人学计算机科学与技术系 咨敬龙汇编语言。进位标志CF(Ca rryFla g)当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置1,即CF=1;否则CF=O。例如:3AH+7c H=B6H,没有进位:
21、CF=OAAH+7c H=(1)26H,有进位:CF=1安徽理工人学计算机科学与技术系 咨敬龙汇编语言。零标志ZF(Zero Fla g)若运算结果为0,则ZF=L否则ZF=0。例如:3AH+7c H=B6H,结果不是零:ZF=086H+7c H=(1)00H,结果是零:ZF=1注意:ZF为1表小的结果是0。安徽理工人学计算机科学与技术系 咨敬龙汇编语言。符号标志SF(SignFla g)运算结果最高位为1,贝l SF=l;否则SF=O。例如:3AH+7c H=B6H,最高位D7=L SF=186H+7c H=(1)OOH,最高位D7=0:SF=O注意:有符号数据利用最高有效位表示数据的符号。
22、所 以,最高有效位就是符号标志的状态。安徽理工人学计算机科学与技术系 咨敬龙汇编语言。奇偶标志 PF(Pa rit y Fla g)当运算结果最低字节中“1”的个数为零或偶数时,PF=1;否则PF=O。例如:3AH+7CH-B6H=10110110B,结果中有5个1,是奇数:PF=O注意:PF标志仅反映最低8位中“1”的个数是偶或奇,即 使是进行16位字操作。安徽理工人学计算机科学与技术系 咨敬龙汇编语言。辅助进位标志AF(Auxilia ry Ca rry Fla g)运算时D3位(低半字节)有进位或借位时,AF=1;否则AF=O。例如:3AH+7c H=B6H,D3有进位:AF=1注意:这
23、个标志主要由处理器内部使用,用于十进制算术 运算指令中,用户一般不必关心。安徽理工人学计算机科学与技术系 咨敬龙汇编语言。溢出标志OF(Overflow Fla g)若算术运算的结果有溢出,则OF=1;否则OF=0。例如:3AH+7c H=B6H,产生溢出:OF=1AAH+7CH=(1)26H,没有溢出:OF=0问题:什么是溢出?溢出和进位有什么区别?如何判断是否溢出?安徽理工人学计算机科学与技术系 咨敬龙汇编语言举例:n=8bit带符号数(-128127),无符号数(0255)0000 0100+0000 1011 0000 1111 带:(+4)+(+11)=+15 OF=0 无:4+11
24、=15 CF=0带符号数和无符号数都不溢出1000 0111力1111 0 10 110111 1100带:(421)+(-11)=+134 OF=1无:135+245=124 CF=1带符号数和无符号数面溢出0000 0X11+?X 1 1 X 10 11 1 0 0 00 00 1 0带:(+7)+(-5)=+2 OF=0无:7+251=258 CF=1无符号数溢出0000 1001+0111 11001000 0101带:(+9)+(+124)=-133 OF=X无:9+124=133 CF=0CF位表示无符号数相加的溢出。OF位表示带符号热相加的溢出安徽理工人学计算机科学与技术系 咨敬
25、龙汇编语言【例1】加例旨令。INC BX;(BX)+1-BX。【例2】双字加法运算,设目的操作数存放在DX和AX寄存器 中,其中DX放高位字,源操作数存放在BX和CX寄存器中,其中BX放高位字,指令执行前:(DX)=0020H,(AX)=0F365H,(BX)=0005H,(CX)=0E024HoADD AX,CX;(AX)=0D389H,CF=1ADC DX,BX;(DX)=0008H,CF=O安徽理工人学计算机科学与技术系 咨敬龙汇编语言2.减法指令:减法指令:SUB DST,SRC功能:目的操作数减去源操作数,结果存于目的地址,源地址的 内容不变。执行操作:(DST)(DST)(SRC)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 第3章 80x86指令系统和寻址方式 80 x86 指令系统 寻址 方式
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【曲****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【曲****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。