欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    计算机组成原理 第3章 80x86的指系统和寻址方式.ppt

    • 资源ID:82808194       资源大小:2.56MB        全文页数:130页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    计算机组成原理 第3章 80x86的指系统和寻址方式.ppt

    指令系统指令系统 一组指令的集合一组指令的集合第第3章章 80 x86的指令系统和寻址方式的指令系统和寻址方式 操作码操作码操作数操作数.操作数操作数指令指令 寻址方式寻址方式 与数据有关的寻址方式与数据有关的寻址方式 与转移地址有关的寻址方式与转移地址有关的寻址方式12023/1/32023/1/322023/1/332023/1/34P4352023/1/35H2023/1/361.8086的寻址方式的寻址方式 与数据有关的寻址方式与数据有关的寻址方式:以以MOV指令为例指令为例 (源操作数源操作数SRCSRC的寻址方式的寻址方式)立即寻址立即寻址MOVAX,3069H寄存器寻址寄存器寻址MOVAL,BH直接寻址直接寻址MOVAX,2000H寄存器间接寻址寄存器间接寻址MOVAX,BX寄存器相对寻址寄存器相对寻址MOVAX,COUNTSI基址变址寻址基址变址寻址MOVAX,BPDI相对基址变址寻址相对基址变址寻址MOVAX,MASKBXSI存储器寻址存储器寻址72023/1/3MOV指令oMOV target,sourcenreg,regnmem,regnreg,memnmem,immednreg,immedo存储器操作数之间不能相互传值o两个操作数的类型须一致o段寄存器和立即数之间不能相互传值oCS不能作为目标寄存器使用(1)立即寻址方式立即寻址方式*操作数在指令中给出操作数在指令中给出 指令格式:MOVAL,5MOVAX,3064HMOVAL,A*只能用于只能用于SRC字段字段MOV40H,AL*SRC和和DST的字长一致的字长一致MOVAH,3064H 92023/1/3(2)寄存器寻址方式寄存器寻址方式*操作数在指定的寄存器中操作数在指定的寄存器中 MOVAX,BXMOVAL,BHMOVAX,3064H*字节寄存器只有字节寄存器只有AHALBHBLCHCLDHDL*SRC和和DST的字长一致的字长一致MOVAH,BX*CS不能用不能用MOV指令改变指令改变MOVCS,AX 102023/1/3(3)直接寻址方式直接寻址方式*由指令直接给出由指令直接给出 例例:MOVAX,2000HEA=2000H,假设假设(DS)=3000H,那么那么PA=32000H*隐含的段为数据段隐含的段为数据段DS*可使用可使用段跨越前缀段跨越前缀MOVAX,ES:2000H*操作数地址可由变量(符号地址)表示操作数地址可由变量(符号地址)表示,但要注意但要注意VALUEDB10变量的属性变量的属性MOVAH,VALUE MOVAX,VALUE MOVAX,WORDPTRVALUE 5030 32000AHAL3050(AX)=3050H112023/1/3(4)寄存器间接寻址寄存器间接寻址*EA在基址寄存器在基址寄存器(BX/BP)或变址寄存器或变址寄存器(SI/DI)中中 MOVAX,BXPA=16d(DS)+(BX)MOVAX,ES:BXPA=16d(ES)+(BX)MOVAX,BPPA=16d(SS)+(BP)*不允许使用不允许使用AX、CX、DX存放存放EAMOVAX,CX*SRC和和DST的字长一致的字长一致MOVDL,BX;BX指示一个字节单元指示一个字节单元MOVDX,BX;BX指示一个字单元指示一个字单元*适于数组、字符串、表格的处理适于数组、字符串、表格的处理122023/1/3 有效地址有效地址=(BX)(BP)8位位(SI)16位位(DI)+位移量位移量(5)寄存器相对寻址方式寄存器相对寻址方式*指令格式指令格式:MOV AX,COUNTSI MOV AX,COUNTSI 或或 MOV AX,COUNT+SIMOV AX,COUNT+SI假设假设(DS)=3000H,(SI)=2000H,COUNT=3000H(DS)=3000H,(SI)=2000H,COUNT=3000H,则则:PA=35000HPA=35000H假设假设(35000H)=1234H,(35000H)=1234H,那那么么 (AX)=1234H(AX)=1234H*适于数组、字符串、表格的处理适于数组、字符串、表格的处理132023/1/3(6)基址变址寻址方式基址变址寻址方式*指令格式:指令格式:MOV AX,BX DIMOV AX,BX DI MOV AX,BX+DI MOV AX,BX+DI MOV AX,ES:BX SI MOV AX,ES:BX SI*适于数组、字符串、表格的处理适于数组、字符串、表格的处理*必须是一个基址寄存器和一个变址寄存器的组合必须是一个基址寄存器和一个变址寄存器的组合MOVAX,BXBP MOVAX,SIDI 有效地址有效地址=(BX)(SI)(BP)(DI)+142023/1/3(7)相对基址变址寻址方式相对基址变址寻址方式 MOVAX,MASKBXSI或或MOVAX,MASKBX+SI或或MOVAX,MASK+BX+SI 有效地址有效地址=(BX)(SI)8位位(BP)(DI)16位位+位移量位移量152023/1/32023/1/316访问存储器的方式访问存储器的方式 默认的默认的段寄存器段寄存器可跨越的可跨越的段寄存器段寄存器偏移地址偏移地址取指令取指令 CS 无 IP堆栈操作堆栈操作 SS 无 SP一般数据访问一般数据访问 DS CS ES SS 有效地址EABP作为基址的寻址作为基址的寻址 SS CS DS ES BP串操作的源操作数串操作的源操作数 DS CS ES SS SI串操作的目的操作数串操作的目的操作数 ES 无 DI段段寄寄存存器器的的使使用用规规定定172023/1/3例例:编写一段显示字符串编写一段显示字符串STRING的程序的程序DATA SEGMENTDATA SEGMENT STRING DB STRING DB HAPPY NEW YEAR!,0DH,0AH,$COUNT DW 17 COUNT DW 17 DATA ENDS DATA ENDS(1)直接寻址直接寻址 mov dl,string mov dl,string mov ah,2 mov ah,2 int 21h int 21h ;显示字符显示字符 HH mov dl,string+1 mov dl,string+1 mov ah,2 mov ah,2 int 21h int 21h ;显示字符显示字符 AA :182023/1/32023/1/319(2)寄存器间接寻址寄存器间接寻址mov cx,count mov cx,count ;mov cx,17;mov cx,17 mov bx,mov bx,offsetoffset string string ;string;string的偏址的偏址 bxbxNext:mov dl,bx Next:mov dl,bx mov ah,2 mov ah,2 int 21h int 21h ;显示一个字符显示一个字符 inc bxinc bx loop next loop next ;循环指令循环指令(3)寄存器相对寻址寄存器相对寻址mov cx,count mov cx,count ;mov cx,17;mov cx,17 mov si,0 mov si,0 Next:mov dl,stringsi Next:mov dl,stringsi ;mov dl,string+si;mov dl,string+si mov ah,2 mov ah,2 int 21h int 21h ;显示一个字符显示一个字符 inc siinc si loop next loop next ;循环指令循环指令202023/1/32023/1/3212023/1/3222023/1/323把string在段里的偏移地址送给dx,offset是个伪操作符,只能在编译的时候用。用法:offset label 作用是得到label在段内的偏移地址mov dx,offset string(4)基址变址寻址基址变址寻址mov cx,count mov cx,count ;mov cx,17;mov cx,17 mov bx,offset string mov bx,offset string ;string;string的偏址的偏址 bxbx mov si,0 mov si,0Next:mov dl,bx si Next:mov dl,bx si ;mov dl,bx+si;mov dl,bx+si mov ah,2 mov ah,2 int 21h int 21h ;显示一个字符显示一个字符 inc siinc si loop next loop next ;循环指令循环指令(5)DOS显示字符串功能显示字符串功能mov dx,offset string mov dx,offset string ;string;string的偏址的偏址 dxdx ;lea dx,stringlea dx,string mov ah,mov ah,9 9 int 21h int 21h ;显示一串字符显示一串字符 P471P471242023/1/380 x86新增的寻址方式新增的寻址方式EA=(基址寄存器基址寄存器)+(变址寄存器变址寄存器)比例因子比例因子+位移量位移量(1)比例变址寻址方式比例变址寻址方式-P43例:例:MOVEAX,COUNTESI 4252023/1/3(2)基址比例变址寻址方式基址比例变址寻址方式-P44-39 例:例:MOVECX,EAXEDI 4 (3)相对相对基址比例变址寻址方式基址比例变址寻址方式例:例:MOVEAX,TABLEEBPEDI 4 16 16位和位和3232位寻址的差异位寻址的差异地址成分地址成分 1616位寻址位寻址 3232位寻址位寻址基址寄存器基址寄存器 BXBX、BP BP 任何任何3232位通用寄存器位通用寄存器变址变址寄存器寄存器 SISI、DI DI 除除ESPESP外外的任何的任何3232位通用寄存器位通用寄存器比例因子比例因子 1 11 1、2 2、4 4、8 8 262023/1/3与与转移转移地址有关的寻址方式:地址有关的寻址方式:段内寻址段内寻址 段内段内直接直接寻址寻址 JMPNEARPTRNEXT 段内段内间接间接寻址寻址 JMPTABLEBX段间寻址段间寻址段间直接寻址段间直接寻址 JMPFARPTRNEXT 段间间接寻址段间间接寻址 JMPDWORDPTRBX用来确定转移指令及转子指令的转向地址用来确定转移指令及转子指令的转向地址。272023/1/3(1)段内直接寻址段内直接寻址-P45转向的有效地址转向的有效地址=当前当前(IP)+位移量位移量(8bit/16bit)282023/1/3例例:JMPNEAR PTRNEXT近转移近转移-32768+32767JMPSHORTNEXT短转移短转移-128+127292023/1/3P872023/1/3302023/1/3312023/1/332(2)段内间接寻址段内间接寻址 转向转向的有效地址是一个的有效地址是一个寄存器寄存器或或存储单元存储单元的的内容内容。(可用除立即数以外的任何一种数据寻址方式得到可用除立即数以外的任何一种数据寻址方式得到)例:例:TABLE=20A2H (BX)=TABLE=20A2H (BX)=1256H1256H (SI)=528EH (SI)=528EH (DS)=2000H (232F8H)=(DS)=2000H (232F8H)=3280H3280H (264E4H)=(264E4H)=2450H2450H JMPBX;(IP)=1256HJMPTABLEBXJMPWORD PTRTABLEBX;(IP)=3280HJMPBXSIJMPWORD PTRBXSI;(IP)=2450H332023/1/3code1 segmentcode1 segment jmp jmp far ptrfar ptr nextnext code1 endscode1 endscode2 segment code2 segment next:next:.code2 endscode2 ends(3)段间直接寻址段间直接寻址 用指令中提供的用指令中提供的转向段地址转向段地址和偏移地址取代和偏移地址取代CS和和IP 例例:342023/1/3(4)段间间接寻址段间间接寻址 用存储器中的两个相继字的内容取代用存储器中的两个相继字的内容取代CS和和IP(存储单元的地址可用存储器寻址方式得到存储单元的地址可用存储器寻址方式得到)例:例:JMPDWORD PTRINTERS+BXPA=(DS)PA=(DS)2 24 4 +(BX)+INTERS+(BX)+INTERS (PA+1,PA)IP (PA+1,PA)IP (PA+3,PA+2)CS (PA+3,PA+2)CS352023/1/3第第3章章练习练习Page 107 3.1 3.3 3.5 3.7 3.11 3.13362023/1/3 数据传送指令数据传送指令 算术指令算术指令 逻辑指令逻辑指令 串处理指令串处理指令 控制转移指令控制转移指令 处理机控制与杂项操作指令处理机控制与杂项操作指令2.8086的指令系统的指令系统372023/1/3重点关注:重点关注:指令的汇编格式指令的汇编格式指令的基本功能指令的基本功能指令支持的寻址方式指令支持的寻址方式指令的执行对标志位的影响指令的执行对标志位的影响指令的特殊要求指令的特殊要求382023/1/3数据传送指令数据传送指令:通用数据通用数据传送指令传送指令MOV、PUSH、POP、XCHG 累加器专用累加器专用传送指令传送指令IN、OUT、XLAT 地址地址传送指令传送指令LEA、LDS、LES 标志寄存器标志寄存器传送指令传送指令LAHF、SAHF、PUSHF、POPF 类型转换类型转换指令指令CBW、CWD392023/1/3传送指令:传送指令:MOVDST,SRC执行操作:执行操作:(DST)(SRC)注意注意:*DST、SRC不能同时为段寄存器不能同时为段寄存器MOVDS,ES*立即数不能直接送段寄存器立即数不能直接送段寄存器MOVDS,2000H*DST不能是立即数和不能是立即数和CS*DST、SRC不能同时为存储器寻址不能同时为存储器寻址*不影响标志位不影响标志位 通用数据传送指令通用数据传送指令MOVAX,DSEGMOVDS,AX402023/1/3 进栈指令:进栈指令:PUSHSRC执行操作:执行操作:(SP)(SP)2(SP)+1,(SP)(SRC)出栈指令:出栈指令:POPDST执行操作:执行操作:(DST)(SP)+1,(SP)(SP)(SP)+2堆栈:堆栈:先进后出先进后出的存储区,段地址存放在的存储区,段地址存放在SSSS中,中,SP在任何时候都在任何时候都指向栈顶指向栈顶,进出栈后,进出栈后自动修改自动修改SPSP。注意注意:*堆栈操作必须以堆栈操作必须以字字为单位。为单位。*不影响标志位不影响标志位*不能用立即寻址方式不能用立即寻址方式PUSH1234H*DST不能是不能是CSPOPCS 412023/1/3例:假设例:假设(AX)=2107H,执行执行PUSHAX*(SP)PUSHAX执行前执行前(SP)*07H07H21H21H低地址低地址高地址高地址PUSHAX执行后执行后进栈方向进栈方向422023/1/3(SP)*07H07H21H21HPOPBX执行执行前前(SP)*07H07H21H21H低地址低地址高地址高地址POPBX执行后执行后(BX)=2107H例:例:POPBX出栈方向出栈方向432023/1/3例:例:PUSH DSPUSH DS SUB AX,AX SUB AX,AX PUSH AX PUSH AX RET RET例:例:PUSH AXPUSH AX PUSH BX PUSH BX PUSH CX PUSH CX ;其间用到其间用到AX、BX、CX POP CX POP CX ;后进先出后进先出 POP BXPOP BX POP AX POP AX442023/1/3 交换指令:交换指令:XCHGOPR1,OPR2执行操作:执行操作:(OPR1)(OPR2)注意注意:*不影响标志位不影响标志位*不允许使用段寄存器不允许使用段寄存器例:例:XCHGBX,BP+SIXCHGAL,BH452023/1/3 累加器专用累加器专用传送指令传送指令(只限使用(只限使用AX或或AL)输入指令输入指令IN(I/OCPU)长格式长格式:INAL,PORT(字节)(字节)INAX,PORT(字)(字)执行操作:执行操作:(AL)(PORT)(字节)(字节)(AX)(PORT+1,PORT)(字)(字)短格式短格式:INAL,DX(字节)(字节)INAX,DX(字)(字)执行操作:执行操作:(AL)(DX)(字节)(字节)(AX)(DX)+1,(DX)(字)(字)462023/1/3输出指令输出指令OUT(CPUI/O)长格式长格式:OUTPORT,AL(字节)(字节)OUTPORT,AX(字)(字)执行操作:执行操作:(PORT)(AL)(字节)(字节)(PORT+1,PORT)(AX)(字)(字)短格式短格式:OUTDX,AL(字节)(字节)OUTDX,AX(字)(字)执行操作:执行操作:(DX)(AL)(字节)(字节)(DX)+1,(DX)(AX)(字)(字)472023/1/3注意注意:*不影响标志位不影响标志位*前前256个端口号个端口号00HFFH可直接可直接在指令中指定(长格式)在指令中指定(长格式)*如果如果端口号端口号 256,端口号端口号DX(短格式)(短格式)例:例:IN AX,28H IN AX,28H MOV DATA_WORD,AX MOV DATA_WORD,AX例:例:MOV DX,3FCHMOV DX,3FCH IN AX,DX IN AX,DX例:例:OUT 5,ALOUT 5,AL例:测试某状态寄存器(端口号例:测试某状态寄存器(端口号27H27H)的第)的第2 2位是否为位是否为1 1 IN AL,27H IN AL,27H TESTTEST AL,00000100B ;p69 AL,00000100B ;p69 JNZ ERROR JNZ ERROR ;若第2位为1,转ERROR处理482023/1/3例:例:Sound程序程序-P286 mov dx,100mov dx,100 in al,61h in al,61h and al,11111100b and al,11111100bsoundsound:xor al,2 ;xor al,2 ;1 0 11 0 1 out 61h,al out 61h,al ;ON OFF ONON OFF ON mov cx,140h mov cx,140h ;脉宽;脉宽Wait1Wait1:loop wait1loop wait1 dec dx dec dx jne sound jne sound设备控制寄存器设备控制寄存器端口端口61H1/00控制其它外部设备控制其它外部设备与与门门放大器放大器2号定时器门控号定时器门控1 0492023/1/3(BX)30HF004031HF004132HF0042(AL)=333HF0043TABLE(DS)=F000H换码指令:换码指令:XLAT或或XLATOPR执行操作:执行操作:(AL)(BX)+(AL)例:例:MOVBX,OFFSETTABLE;(BX)=0040HMOVAL,3XLATTABLE指令执行后指令执行后(AL)=33H注意注意:*不影响标志位不影响标志位*字节表格字节表格(长度不超过长度不超过256)首地址首地址(BX)*需转换的代码位移量需转换的代码位移量(AL)502023/1/3 地址传送指令地址传送指令 有效地址送寄存器有效地址送寄存器指令:指令:LEAREG,SRC执行操作:执行操作:(REG)SRC指针送寄存器指针送寄存器和和DS指令:指令:LDSREG,SRC执行操作:执行操作:(REG)(SRC)(DS)(SRC+2)相继二字相继二字寄存器、寄存器、DS 指针送寄存器和指针送寄存器和ES指令:指令:LESREG,SRC执行操作:执行操作:(REG)(SRC)(ES)(SRC+2)相继二字相继二字寄存器、寄存器、ES512023/1/3例:例:LEABX,BX+SI+0F62H LDSSI,10H LESDI,BX40H00H00H30HTABLE(DS):1000HMOVBX,TABLE;(BX)=0040HMOVBX,OFFSETTABLE;(BX)=1000HLEABX,TABLE;(BX)=1000HLDSBX,TABLE;(BX)=0040H;(DS)=3000HLESBX,TABLE;(BX)=0040H;(ES)=3000H注意注意:*不影响标志位不影响标志位*REG不能是不能是段寄存器段寄存器*SRC必须为存储器寻址方式必须为存储器寻址方式522023/1/3 标志寄存器传送标志寄存器传送指令指令标志送标志送AH指令:指令:LAHF执行操作:执行操作:(AH)(FLAGS的低字节的低字节)AH送标志寄存器指令:送标志寄存器指令:SAHF执行操作:执行操作:(FLAGS的低字节的低字节)(AH)标志进栈指令:标志进栈指令:PUSHF执行操作:执行操作:(SP)(SP)-2(SP)+1,(SP)(FLAGS)标志出栈标志出栈指令:指令:POPF执行操作:执行操作:(FLAGS)(SP)+1,(SP)(SP)(SP)+2*影响标志位影响标志位532023/1/3 类型转换指令类型转换指令CBWALAX执行操作:执行操作:若若(AL)的最高有效位为的最高有效位为0,则,则(AH)=00H若若(AL)的最高有效位为的最高有效位为1,则,则(AH)=FFHCWDAX(DX,AX)执行操作:若执行操作:若(AX)的最高有效位为的最高有效位为0,则,则(DX)=0000H若若(AX)的最高有效位为的最高有效位为1,则,则(DX)=FFFFH例:例:(AX)=0BA45HCBW;(AX)=0045HCWD;(DX)=0FFFFH(AX)=0BA45H注意注意:*无操作数指令无操作数指令*隐含对隐含对AL或或AX进行符号扩展进行符号扩展*不影响不影响条件标志位条件标志位542023/1/3算术指令:算术指令:加法指令加法指令ADD、ADC、INC 减法指令减法指令SUB、SBB、DEC、NEG、CMP 乘法指令乘法指令MUL、IMUL 除法指令除法指令DIV、IDIV 十进制调整指令十进制调整指令DAA、DAS、AAA、AAS、AAM、AAD552023/1/3 加法指令加法指令 加法指令:加法指令:ADDDST,SRC执行操作:执行操作:(DST)(SRC)+(DST)带进位加法带进位加法指令:指令:ADCDST,SRC执行操作:执行操作:(DST)(SRC)+(DST)+CF加加1指令:指令:INCOPR执行操作:执行操作:(OPR)(OPR)+1注意注意:*除除INC指令指令不影响不影响CF标志外,均对条件标志外,均对条件标志位有影响标志位有影响。562023/1/3加法加法指令对指令对条件标志位条件标志位的影响的影响CF位表示位表示无符号数无符号数相加的溢出。相加的溢出。OF位表示位表示带符号数带符号数相加的相加的溢出溢出。1结果为负结果为负0否则否则SF=1结果为结果为00否则否则ZF=1和的最高有效位和的最高有效位有有向高位的进位向高位的进位0否则否则CF=1两个操作数符号相同,而结果符号与之相反两个操作数符号相同,而结果符号与之相反0否则否则OF=572023/1/3举例举例:n=8bit带符号数带符号数(-128127),无符号数无符号数(0255)00000100+0000101100001111带:带:(+4)+(+11)=+15OF=0无:无:4+11=15CF=0带符号数和无符号数都不溢出带符号数和无符号数都不溢出00001001+0111110010000101带带:(+9)+(+124)=-123OF=1无无:9+124=133CF=0带符号数溢出带符号数溢出无符号数溢出无符号数溢出00000111+11111011100000010带:带:(+7)+(-5)=+2OF=0无:无:7+251=2CF=1带符号数和无符号数都溢出带符号数和无符号数都溢出10000111+11110101101111100带:带:(-121)+(-11)=+124OF=1无:无:135+245=124CF=1582023/1/3例:例:双精度数双精度数的加法的加法 (DX)=0002H(AX)=0F365H(BX)=0005H(CX)=8100H指令序列指令序列ADDAX,CX;(1)ADCDX,BX;(2)(1)执行后,执行后,(AX)=7465HCF=1OF=1SF=0ZF=0(2)执行后,执行后,(DX)=0008HCF=0OF=0SF=0ZF=0592023/1/3 减法指令减法指令减法指令:减法指令:SUBDST,SRC执行操作:执行操作:(DST)(DST)-(SRC)带借位减法指令:带借位减法指令:SBBDST,SRC执行操作:执行操作:(DST)(DST)-(SRC)-CF减减1指令:指令:DECOPR执行操作:执行操作:(OPR)(OPR)-1求补指令:求补指令:NEGOPR执行操作:执行操作:(OPR)-(OPR)比较指令:比较指令:CMPOPR1,OPR2执行操作:执行操作:(OPR1)-(OPR2)注意注意:*除除DEC指令指令不影响不影响CF标志外,均对条标志外,均对条件标志位有影响。件标志位有影响。602023/1/3减法指令对条件标志位(减法指令对条件标志位(CF/OF/ZF/SF)的影响:)的影响:CF位表示位表示无符号数无符号数减法的溢出。减法的溢出。OF位表示位表示带符号数带符号数减法的溢出。减法的溢出。1被减数被减数的最高有效位的最高有效位有有向高位的向高位的借位借位0否则否则CF=1两个操作数两个操作数符号相反符号相反,而,而结果结果的符号的符号与减数相同与减数相同0否则否则OF=1减法减法转换为加法转换为加法运算时运算时无无进位进位0否则否则CF=或或612023/1/3NEG指令对指令对CF/OF的影响的影响0操作数为操作数为01否则否则CF=1操作数为操作数为-128(补码(补码80H,字节运算),字节运算)或或操作数为操作数为-32768(补码(补码8000H,字运算),字运算)0否则否则OF=00011110+00011111622023/1/3求补指令把操作数按位取反后末位加1NEG指令对指令对CF/OF的影响的影响0操作数为操作数为01否则否则CF=1操作数为操作数为-128(字节运算)(字节运算)或或操作数为操作数为-32768(字运算)(字运算)-+128+32768超出补码表示范围,溢出超出补码表示范围,溢出0否则否则OF=00001111+00011000010000111+00011000632023/1/32023/1/3642023/1/365例:例:x、y、z均为双精度数,分别存放在地址为均为双精度数,分别存放在地址为X,X+2;Y,Y+2;Z,Z+2的存储单元中,用指令序列实现的存储单元中,用指令序列实现wx+y+24-z,并用,并用W,W+2单元存放单元存放wMOV AX,XMOV AX,XMOV DX,X+2MOV DX,X+2ADD AX,YADD AX,YADC DX,Y+2 ;ADC DX,Y+2 ;x+yx+yADD AX,24ADD AX,24ADC DX,0 ;x+y+24ADC DX,0 ;x+y+24SUB AX,ZSUB AX,ZSBB DX,Z+2 ;x+y+24-zSBB DX,Z+2 ;x+y+24-zMOV W,AXMOV W,AXMOV W+2,DX ;MOV W+2,DX ;结果存入结果存入W,W+2W,W+2单元单元662023/1/3 乘法指令乘法指令 无符号无符号数乘法指令:数乘法指令:MULSRC带符号带符号数乘法指令:数乘法指令:IMULSRC执行操作:执行操作:字节字节操作数操作数(AX)(AL)*(SRC)字字操作数操作数(DX,AX)(AX)*(SRC)注意注意:*AL(AX)为隐含的乘数寄存器。为隐含的乘数寄存器。*AX(DX,AX)为隐含的乘积寄存器。为隐含的乘积寄存器。*SRC不能为立即数不能为立即数。*除除CF和和OF外,对条件标志位无定义外,对条件标志位无定义。672023/1/3乘法指令对乘法指令对CF/OF的影响:的影响:例:例:(AX)=16A5H,(BX)=0611H(1)IMULBL;(AX)(AL)*(BL);A5*115B*11=060BF9F5;(AX)=0F9F5HCF=OF=1(2)MULBX;(DX,AX)(AX)*(BX);16A5*0611=00895EF5;(DX)=0089H(AX)=5EF5HCF=OF=100乘积的高一半为零乘积的高一半为零11否则否则MUL指令指令:CF,OF=00乘积的高一半是低一半的符号扩展乘积的高一半是低一半的符号扩展11否则否则IMUL指令指令:CF,OF=1010 01010101 1011682023/1/32023/1/369 除法指令除法指令-P67 无符号无符号数除法指令:数除法指令:DIVSRC带符号带符号数除法指令:数除法指令:IDIVSRC执行操作:执行操作:字节操作字节操作(AL)(AX)/(SRC)的商的商(AH)(AX)/(SRC)的余数的余数字操作字操作(AX)(DX,AX)/(SRC)的商的商(DX)(DX,AX)/(SRC)的余数的余数注意注意:*AX(DX,AX)为隐含的被除数寄存器。为隐含的被除数寄存器。*AL(AX)为隐含的商寄存器。为隐含的商寄存器。*AH(DX)为隐含的余数寄存器。为隐含的余数寄存器。*SRC不能为立即数。不能为立即数。*对所有条件标志位对所有条件标志位均无定义均无定义。如何判别结果有效?如何判别结果有效?702023/1/3例:例:x,y,z,v均为均为16位带符号数,计算位带符号数,计算(v-(x*y+z540)/xMOV AX,X MOV AX,X IMUL Y ;x*y IMUL Y ;x*y(DX,AXDX,AX)MOV CX,AXMOV CX,AXMOV BX,DXMOV BX,DXMOV AX,ZMOV AX,ZCWD CWD ;Z Z(DXDX,AXAX)ADD CX,AXADD CX,AXADC BX,DX ;x*y+z ADC BX,DX ;x*y+z(BXBX,CXCX)SUB CX,540 SUB CX,540 SBB BX,0 ;x*y+z-540SBB BX,0 ;x*y+z-540MOV AX,VMOV AX,VCWD CWD ;V V(DXDX,AXAX)SUB AX,CXSUB AX,CXSBB DX,BX ;v-(x*y+z-540)SBB DX,BX ;v-(x*y+z-540)IDIV X ;(v-(x*y+z-540)/xIDIV X ;(v-(x*y+z-540)/x(AXAX)余数余数(DXDX)712023/1/3 十进制调整指令十进制调整指令BCD码码(8421码码):用二进制编码的十进制数,:用二进制编码的十进制数,又称又称二二-十进制数十进制数压缩的压缩的BCD码:用码:用4位二进制数位二进制数表示表示1位十进制数位十进制数例:例:(59)10(01011001)BCD非压缩非压缩的的BCD码:码:用用8位二进制数表示位二进制数表示1位十进制数位十进制数例:例:(59)10(0000010100001001)BCD数字的数字的ASCII码码是一种是一种非压缩的非压缩的BCD码码DIGITASCIIBCD030H00110000131H00110001232H00110010939H00111001722023/1/3高4位无意义例例:写出:写出(3590)10的压缩的压缩BCD码和非压缩码和非压缩BCD码,并分码,并分别别把它们存入数据区把它们存入数据区PAKED和和UNPAK压缩压缩BCD:(3590)10(0011010110010000)BCD非压缩非压缩BCD:(3590)10(00000011000001010000100100000000)BCDPAKED90H 35HUNPAK00H 09H 05H 03H732023/1/3问题的提出:问题的提出:十进制调整指令十进制调整指令19压缩压缩BCD:000110012700100001+110+08+00001000(00100111)BCDAF=1742023/1/306H(1)压缩的)压缩的BCD码调整指令码调整指令DAA加法的十进制调整指令加法的十进制调整指令DAS减法的十进制调整指令减法的十进制调整指令(2)非压缩的)非压缩的BCD码调整指令码调整指令AAA加法的加法的ASCII码调整指令码调整指令AAS减法的减法的ASCII码调整指令码调整指令AAM乘法的乘法的ASCII码调整指令码调整指令AAD除法的除法的ASCII码调整指令码调整指令752023/1/3压缩压缩BCD运算举例:运算举例:(1)MOVAL,BCD1;BCD1=34HADDAL,BCD2;BCD2=59H,(AL)=8DHDAA;8DH+06H=93HMOVBCD3,AL;BCD3=93H(2)MOVAL,BCD1;BCD1=34HSUBAL,BCD2;BCD2=59H,(AL)=0DBHDAS;0DBH60H06H=75HMOVBCD3,AL;BCD3=75=-25(10n补码)补码)762023/1/3非压缩非压缩BCD运算举例:运算举例:-略略(1)MULBL;(AX)=(AL)(BL)=0809AAM;(AL)/0AH=48H/0AH0702(2)AAD;(AX)(AH)0AH+(AL)=48HDIVBL;(AL)=(AX)/(BL)=48H/4=12HAAM;(AL)/0AH=12H/0AH=0108772023/1/3第第3章作业章作业Page 109 3.14 3.17 782023/1/3逻辑指令逻辑指令:逻辑运算逻辑运算指令指令AND、OR、NOT、XOR、TEST 移位移位指令指令SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR792023/1/3逻辑非逻辑非指令:指令:NOTOPR*OPR不能为立即数不能为立即数执行操作:执行操作:(OPR)(OPR)*不影响标志位不影响标志位逻辑与逻辑与指令:指令:ANDDST,SRC执行操作:执行操作:(DST)(DST)(SRC)逻辑或逻辑或指令:指令:ORDST,SRC执行操作:执行操作:(DST)(DST)(SRC)异或异或指令:指令:XORDST,SRC执行操作:执行操作:(DST)(DST)(SRC)测试测试指令:指令:TESTOPR1,OPR2执行操作:执行操作:(OPR1)(OPR2)CFOFSFZFPFAF00*无定义无定义 根据运算结果设置根据运算结果设置 逻辑运算逻辑运算指令指令802023/1/3例例:屏蔽:屏蔽AL的第的第0、1两位两位ANDAL,0FCH例:置例:置AL的第的第5位为位为1ORAL,20H例:使例:使AL的第的第0、1位变反位变反XORAL,3例:测试某些位是例:测试某些位是0是是1TESTAL,1JZEVEN*OR00100000*1*01XOR00000011*10*AND11111100*00*AND000000010000000*812023/1/3逻辑左移逻辑左移SHLOPR,CNT逻辑右移逻辑右移SHROPR,CNT算术左移算术左移SALOPR,CNT(同逻辑左移)(同逻辑左移)算术右移算术右移SAROPR,CNTCF

    注意事项

    本文(计算机组成原理 第3章 80x86的指系统和寻址方式.ppt)为本站会员(s****8)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开