微机原理与接口技术第三章指令系统.ppt

  1. 1、本文档共137页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章:8 .乘法和除法指令 乘法指令分无符号和有符号乘法指令 MUL reg/mem ;无符号乘法 IMUL reg/mem ;有符号乘法 除法指令分无符号和有符号除法指令 DIV reg/mem ;无符号除法 IDIV reg/mem ;有符号除法 第3章: (1)乘法指令 进行乘法时,如果两个8位数相乘,乘积将是一个16位的数;如果两个16位数相乘,则乘积将是一个32位的数。 乘法指令中有两个操作数,但其中一个是隐含固定在AL或AX中,若是8×8,被乘数总是先放入AL中,所得乘积在AX中;若是16×16,被乘数总是先放入AX中,乘积在DX和AX两个16位的寄存器中,且DX中为乘积的高16位,AX中为乘积的低16位。 第3章: 无符号数乘法指令 MUL 的格式:MUL src 执行的操作:AX← AL*src(字节) DX,AX← AX*src(字) 指令中的src可以是R/M中的8位或16位的无符号数,不可为立即数,被乘数固定放在AL或AX中,也是无符号数。 第3章: 例题(无符号数乘法指令) MOV AX,5612H MOV BL,66H MUL BL ;乘积 AX=072CH 注意:对于8×8,无论AH原来的值是多少,都不参加与运算,结束后,AH被乘积的高8位所替代。 思考:无符号数的乘法只有8×8和16×16两种,如何实现16×8呢? 第3章: (2) 除法指令 8086执行除法运算时,规定被除数必为除数的双倍,即除数为8位时,被除数应为16位,而除数为16位时,被除数为32位。 除法指令有两个操作数,其中被除数隐含固定在AX(除数为8位时)中或DX,AX(除数为16位时)中。在使用除法指令前,需将被除数用MOV指令传送到位。 第3章: (2) 除法指令 DIV的格式:DIV src 字节操作:16位被除数在AX中,8位除数为源操作数,结果的8为商在AL中,8为余数在AH中。 字操作:32位被除数在DX,AX中,其中DX为高位字;16为除数为源操作数,结果的16位商在AX中,16位余数在DX中。 第3章(3)符号扩展指令 符号扩展是指用一个操作数的符号位(最高位)形成另一个操作数,后一个操作数的高位是全0(正数)或全1(负数) 符号扩展虽然使数据位数加长,但数据大小并没有改变,扩展的高部分仅是低部分的符号扩展 符号扩展指令有两条,用来将字节转换为字,字转换为双字 CBW ;AL符号扩展成AX CWD ;AX符号扩展成DX 注意: CBW和CDW均只能用在带符号数扩展,而不能用作无符号数的扩展。而且扩展只能是AL到AX或AX到DX,AX,其他寄存器均不行。 无符号数的扩展: AL中8位扩展到AX中16位, 用指令 MOV AH,0 AX中16扩展到DX,AX中32位, 用指令 MOV DX,0 第3章:4. 符号扩展指令 第3章:例题(符号扩展) MOV AL,64H ;AL=64H (机器数) ,表示10进制数100(真值) CBW ;将符号0扩展,AX=0064H,仍然表示100 MOV AX,0FF00H ;AX=FF00H,表示有符号10进制数-256 CWD ;将符号位“1”扩展,DX.AX=FFFFFF00H ;仍然表示-256 符号地址 MOV AL,BUF BUF即为符号地址,故有效地址EA=BUF DATA SEGMENT ;定义数据段开始 : BUF DB 45H,67H,23H,0FBH : DATA ENDS ;定义数据段结束 指令功能:从有效地址为BUF的存储单元中取出一个字节数据送入AL寄存器中。 什么是 符号地址? 符号地址通常是一个变量,用英文字符表示。 符号地址用于代替数值地址。 符号地址实际上就是存储单元的名字,若要访问这些单元,只要使用其名字即可。 总结 二、算术运算类指令 乘法指令(MUL) 除法指令(DIV) 符号扩展指令(CBW、CDW) 作业 习题3-10 8086的端口有64K个,无需分段,设计有两种寻址方式 直接寻址:只用于寻址00H~0FFH前256个端口,操作数i8表示端口号 间接寻址:可用于寻址全部64K个端口,DX寄存器的值就是端口号 大于0FFH的端口只能采用间接寻址方式 CPU与外设进行数据交换时,读出或写入的数据存放的位置只能是: AL(读取8位数据时) AX(读取16位数据时) I/O指令按指令长度分为长格式和短格式。 (1)输入指令 长格式: IN AL,PORT ;将port端口字节数据输入到AL IN AX,PORT ;将port和port+1两端口的内容输入到AX,其中p

文档评论(0)

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

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

1亿VIP精品文档

相关文档