计算机原理:第二章微型机指令系统2of4

上传人:夏** 文档编号:569785214 上传时间:2024-07-31 格式:PPT 页数:34 大小:699.50KB
返回 下载 相关 举报
计算机原理:第二章微型机指令系统2of4_第1页
第1页 / 共34页
计算机原理:第二章微型机指令系统2of4_第2页
第2页 / 共34页
计算机原理:第二章微型机指令系统2of4_第3页
第3页 / 共34页
计算机原理:第二章微型机指令系统2of4_第4页
第4页 / 共34页
计算机原理:第二章微型机指令系统2of4_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《计算机原理:第二章微型机指令系统2of4》由会员分享,可在线阅读,更多相关《计算机原理:第二章微型机指令系统2of4(34页珍藏版)》请在金锄头文库上搜索。

1、 13.3.乘法指令乘法指令 分无符号乘法MUL和带符号乘法IMUL,隐含目标为累加器(8位数在AL, 16位在AX)。MUL src ;src 须为 寄存器 或指向 存储单元EX. MUL BL ; 字节乘法 ; (AX)(AL)*(BL) MUL CX ; 字乘法 ; (DX:AX)(AX)*(CX) 2 不压缩BCD码相乘,结果以二进制在AL中,可用AAM调成不压缩BCD码,低位在AL中,高位在AH中。由于两个不压缩BCD码相乘与两个对应的小于等于9的二进制相乘相同,故AAM的任务就是将以二进制的乘法运算的结果(二进制码)转换为不压缩的BCD码。 即,AAM完成 (AH)(AL)/0AH

2、 取商 (AL)(AL)%0AH 取余数Ex. MOV AL, 7H MOV BL, 9H MUL BL ; (AX) = 003FH AAM ; (AH)=06H, (AL)=03H 34.4.除法指令除法指令 只能16位数除以8位数,或32位除以16位。隐含目标为累加器(AX/DX:AX)DIV src ;src 须为 寄存器 或指向 存储单元EX. DIV BL ;字节除法 ; (AL)(AX)/(BL) 商 ; (AH)(AX)%(BL) 余数EX. DIV CX ;字除法 ; (AX)(DX:AX)/(CX) ; (DX)(DX:AX)%(CX) 4 过程:十变二二进制除法二变十 除

3、法十进制调整AAD用在除法前,将AX中不压缩BCD码(即2位十进制数)变成2进制数放进AL ,除以字节(16位除以8位)后AL 为2进制商,再用乘法调整AAM(对AL)变十进制。即, AAD完成 (AL)(AH)*0AH+(AL) (AH)0 除法十进制调整除法十进制调整 5例(P78): 732 = ? MOV AX, 0703H MOV BL, 2H AAD ; (AL)=49H =73D DIV BL ; (AL)=24H(商), (AH)=1(余数) AAM ; (AH)=3H, (AL)=6H ; 注:此处仅对商进行了调整 6 6无符号数高位加零带符号数将符号位扩展CBW:带符号数B

4、(AL) W(AX)CWD:带符号数W(AX) DW(DX:AX)这是补码具有的特点。参见 P8表1.1中的 补码表示5. 数据类型转换及转换指令扩展数据位长 7 7三、逻辑运算和移位指令三、逻辑运算和移位指令三、逻辑运算和移位指令三、逻辑运算和移位指令逻辑运算逻辑运算按位进行,B / W与 AND测试 TEST( 不回送的与)或(OR)异或(XOR)非(NOT) 8 8逻辑运算举例逻辑运算举例AND AL , 0FH ; AL高4位清零、低4位保留TEST AL , 0FH ; 结果不返送,标志位变 ; 如例中测试AL低4位是否是全零,是则ZF=1OR AL , 0FH ; AL高4位不变,

5、低4位全1XOR AL , 0FH ; AL高4位不变,低4位取反 9 92.2.移位指令移位指令操作数中各位同时向左(或向右)移动。移动1位 SHL dest , 1 移动 n 位 MOV CL , nSHL dest , CL移位指令都会影响进位标志CF 10 10 SHR dest , CL 逻辑右移 SAR dest , CL算术右移(最高位不变)CF SHL dest , 1 SHL dest , CL逻辑左移/算术左移 0CFdest0destCFdest 11 11 二进制数左移一位,相当于将该数乘以2 SHL AL, 1 MOV BL, AL SHL AL, 1 SHL AL,

6、 1 ADD AL, BL 12 123.3.循环移位指令循环移位指令 ROL dest , CL 左循环 ROR dest , CL 右循环 CFCF 13 13 RCL dest , CL 带进位左循环带进位左循环 RCR dest , CL 带进位右循环带进位右循环 CFCF带进位循环带进位循环 14 14四四.串操作指令串操作指令串操作指令串操作指令对内存中数据块连续操作(传送、比较等) ,B / W地址指针:源指针SI, 默认 DS: SI 目标指针DI,默认 ES:DI指针修改:取决于方向标志DF (+/ - )和B / W ( 1 / 2 )计数: CX - 1 15 151.

7、MOVS 1. MOVS ; ; 串传送( ES : DI ) ( DS : SI ) , B/W B : SI 1 , DI 1 或 W : SI 2 , DI 2串操作指令可加前缀串操作指令可加前缀REP(自动重复自动重复) REP MOVS ;自动重复自动重复MOVS,至至CX= 0例例2. MOVS BUFFER1, ES:BUFFER2例例1. MOVS WORD PTR DI, SI具体机器码参见教材P378 附表2.10 16 16 REP MOVS 的执行过程:检查CX,如(CX)=0, 则退出, 否则执行一次: ( ES : DI ) ( DS : SI ) , 根据DF标志

8、修改指针,DF=0指针加,DF=1指针减,1或2则由操作数类型的预先定义、类型运算操作符PTR说明、或用MOVSB与MOVSW指明 (CX)(CX)-1转至下一循环 17 172 . CMPS ;串比较,可加重复前缀;串比较,可加重复前缀: ( ES : DI ) - ( DS : SI ) , B/W REPNE CMPS ;(CX)0且且(ZF)=0时继续执行时继续执行 ; 找两串中第一个找两串中第一个相等相等元素元素REPE CMPS ;(CX)0且且(ZF)=1时继续执行时继续执行 ;找两串中第一个;找两串中第一个不相等不相等元素元素 18 183. SCAS 3. SCAS 串扫描串

9、扫描 用用累加器的内容累加器的内容和字符串比较和字符串比较字节串扫描字节串扫描 (AL)-(ES):(DI)字串扫描字串扫描 (AX)-(ES):(DI) 有:有:REPE 等等LODS ;字节串取入,字节串取入,AL (DS:SI) ;字串取入,;字串取入,AX (DS:SI)STOS ; 字节串送存,字节串送存,(ES:DI) (AL), (有(有REP) ; 字串送存,字串送存,(ES:DI) (AX), (有(有REP) 参见P94的表2.6 19 19五五. . 控制操作指令控制操作指令1.转移指令转移指令2.循环控制指令循环控制指令3.调用及返回调用及返回4.中断及返回中断及返回

10、20 20 201.1.转移指令转移指令 (地址a) # (a+ 1) # (地址b) # (b+1) # JMP * MOV AX, 66H . 临执行临执行JMP指令前指令前(已读取该已读取该JMP指令),指令), CS:IP = a+2在执行在执行JMP指令后,即有执行结果指令后,即有执行结果 CS:IP = b 21 211.1.转移指令转移指令转移的远近转移的远近短转移短转移近转移近转移JMP-32768+32767+127-128段外段外远转移远转移 22 22转移目标转移目标常用程序标号表示程序标号:定义在代码段某条指令前, 代表这条指令地址的一个 符号(名字)。 段内标号(近标

11、号):只有偏移地址 段外标号(远标号) :还有段基址 23 23 MOVSI, 0100H MOV DI, 0114H CLC MOV CL, 10 N1: MOVAL, SI MOVBL, 10SI ADC AL, BL DAA MOVDI, AL INCSI INCDI DECCL JNZN1 24 24无条件转移无条件转移 JMP label (标号) ;最常用 label (有近、短和远之分)短(short,8bit),近(near, 16bit)为段内转移JMP 短(近)标号 ;段内直接转移 执行 (IP)(IP)+disp (8位或16位)该disp由汇编时算出地址位移量(为下一条

12、到label)即disp=近标号地址 IP, 为单/双字节补码 执行时相应由 IP+ disp ,转入目的指令 25 25无条件转移无条件转移JMP 远标号 ;CS : IP 都要用远标号 的替换, ; 实现段间转移。(参见380页) (IP)OFFSET far_label(CS)SEG far_label 26 26间址转移JMP reg16 ; ex. JMP AX 寄存器间址寄存器间址转移,(IP)(reg16)JMP mem16 ; ex. JMP WORD PTR BX1200H 存储器间址存储器间址转移,(IP)(mem16)reg/mem 的内容当目标地址赋给 IP ,实现间址

13、间址近转移。 27 27 JMP mem 32 ; ex. JMP DWORD PTR BX1200H mem 32内容当目标地址 赋给 CS :IP , 实现间址间址远转移。即, (IP)(mem32)(CS)(mem32+2)只能用存储器间址实现间址远转移。 28 28 得到转移的目标地址(CS)、(IP)的几种方式操作数为立即数所得来的直接转移, 当立即数 x 为 B(字节),W(字) 时, (IP) (IP)+x (故亦称为 相对转移) (CS) 不变 当立即数 x 为 DW(双字) 时, (IP) x 的低16位 (CS) x 的高16位 29 29 操作数为寄存器 reg16 或存

14、储器地址 mem 时得来的间接转移 当为reg16 或(mem)为字字数据类型时 (IP) (reg16) or (IP) (mem) (CS) 不变 当(mem)为双字双字数据类型时 (IP) (mem) (CS) (mem+2) 30 30条件转移都是短(short)转移 (短标号短标号(一个字节的一个字节的) )立即数立即数相对转移相对转移) 条件转移条件转移条件成立时才转移,不成立则顺序执行对存在寄存器AH中的数 x, 和立即数y 做减运算,即: SUB AH, y如x,y为无符号数且 x y 时,则做SUB 运算后有借位,即 (CF)=1所以,当(CF)=1时,如原x, y为无符号数

15、, 则表明x低于y(或称之为 x不高于或等于y) 例:条件转移指令例:条件转移指令 JB/JNAE 和和 JL/JNGE (见见P98 表表2.7) 31 31条件转移条件转移同样对存在寄存器AH中的数 x, 和立即数y 做减运算,SUB AH, y 如x,y为带符号数且 x =2则转移。则转移。2. LOOP指令对标志位没影响,指令对标志位没影响, 即即LOOP指令对指令对CX的减的减1不影响标志位。不影响标志位。 34 34 LOOP 标号标号 ; CX 1 0 , 则转移至标号 LOOPZ 标号标号 ; CX 1 0 ,且且ZF = 1则循环 ; LOOP的上面指令影响ZF LOOPNZ 标号标号 ; CX 1 0 且且ZF = 0 则循环循环指令的三种形式循环指令的三种形式

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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