微机原理第3章A范例.ppt

  1. 1、本文档共136页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 两条乘法指令的比较 例: 设:AL=FEH,CL=11H,求AL与CL的乘积。 执行:MUL CL 结果:AX=10DEH 执行:IMUL CL 结果:AX=FFDEH=-34。 若设为无符号数 若将两操作数看作有符号数 * 四、除法指令 无符号除法指令 格式: DIV OPRD 有符号除法指令 格式: IDIV OPRD * 四、除法指令 操作说明:除数只能是被除数的一半字长。当被除数为16位时,除数应为8位;被除数为32位时,除数应为16位。并规定:被除数为16位时,应存放在AX中。除数为8位,可存放在寄存器或存储器中(不能为立即数)。得到的8位商放在AL中,8位余数放在AH中;被除数为32位时,应存放在DX(高位)和AX(低位)中,除数为16位,可存放在寄存器或存储器中(不能为立即数)。得到的16位商放在AX中,16位余数放在DX中 * 四、除法指令  使用除法指令,出现以下三种情形之一时,CPU立即产生一个类型号为0的内部中断:① 除数为零。② 字节除法时,被除数高8位的绝对值大于除数的绝对值(此时的商超过了8位)。③ 字除法时,被除数高16位的绝对值大于除数的绝对值(此时的商超过了16位)。前一种属于操作数异常(除数为零),后两种属于运算结果溢出。 此外,如果被除数和除数字长相等,则在用IDIV指令进行带符号数除法之前,必须先用符号扩展指令CBW或CWD将AL或AX中的被除数的符号位扩展,使之成为16位数或32位数。对于无符号数来说,应该用8位或16位零把被除数扩展成16位数或32位数。 * 除法指令的操作 若OPRD是字节数 执行:AX/OPRD 结果: AL=商 AH=余数 若OPRD是双字节数 执行: DXAX/OPRD 结果: AX=商 DX=余数 指令要求被除数是除数的双倍字长 * 五、BCD码调整指令 共6条,均为隐含寻址方式,隐含的操作数是 AL或AL、AH; 不能单独使用,要紧跟在相应的算术运算指令 之后; 执行结果为压缩BCD码或扩展BCD码表示的十进制数。 * BCD码调整指令 十进制调整指令  计算机中十进制数采用BCD码表示,要对十进制的BCD码进行算术运算,必须对得到的结果进行调整,否则结果无意义。 8086指令系统提供了以下两类十进制调整指令。 (1)压缩BCD码加法、减法调整指令 DAA--压缩BCD码加法调整指令 DAS--压缩BCD码减法调整指令 * BCD码调整指令 【例】 48+29=77 运算结果得不到77的压缩BCD码,是因为在进行二进制加法运算时,低四位向高四位有—个进位,这个进位是按十六进制进行的,即低4位逢16才向高四位进1,而十进制数应是逢十进一。因此,比正确结果少6,这时,调整指令应在相加结果的低4位上加6。即: * BCD码调整指令 上述运算过程用指令实现如下:    MOV AL,48H    ADD AL,29H    DAA * BCD码调整指令 (2)非压缩BCD加法、减法调整指令 AAA-非压缩BCD加法调整指令,将AL中的和调整为非压缩BCD码 AAS-非压缩BCD减法调整指令,将AL中的差调整为非压缩BCD码 AAA和AAS分别用于加法指令(ADD、ADC)或减法指令(SUB、SBB)之后,执行时对AL进行测试,若AL中的低四位>09H,或AF=1,则进行AL←(AL)±06H修正;AL的高4位为0,同时AH←(AH)±1;CF=AF=1。调整后的结果放在AX中 汇编语言语句 §4.2 汇编语言源程序(程序结构): 汇编语言语句 §4.2 【例1】 编写一个两个字相加的程序。 解: DSEG SEGMENT ;定义数据段 DATAl DW 0F865H ;定义被加数 DATA2 DW 360CH ;定义加数 DSEG ENDS      ;数据段结束 ; ESEG SEGMENT     ;定义附加段 SUM DW 2 DUP(?) ;定义存放结果区 ESEG ENDS      ;附件段结束 ; CSEG SEGMENT     ;定义代码段 ;下面的语句说明程序中的各段分别用哪个寄存器寻址 ASSUME CS:CSEG DS:DSEG,ES:ESEG 汇编语言语句 §4.2 START:MOV AX,DSEG  MOV DS,AX   ;初始化DS  MOV AX,ESEG  MOV

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档