- 1、本文档共184页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二章2.4寻址方式与指令系统,寻址方式,指令系统,指令的寻址方式,计算机指令系统,8086指令系统,单片机寻址方式,arm寻址方式,计算机指令系统是指,8086寻址方式
(1)IN (Input byte or word)输入指令 长格式:IN AL,port(字节端口) IN AX,port(字端口) 执行的操作:(AL)←(port) (AX)←(port+1,port) 短格式: IN AL,DX(字节端口) IN AX,DX(字端口) 执行的操作:(AL)←((DX)) (AX)←((DX)+1,(DX)) (1)DAA(Decimal adjust for addition)加法十进制调整指令 格式:DAA DAA指令对OF标志没有定义,但影响其他所有状态标志。 (2)DAS(Decimal adjust for subtraction)减法十进制调整指令 格式:DAS 逻辑运算及移位指令小结 AND、TEST、OR、XOR指令对标志位的影响:固定使CF=OF=0;根据运算结果改变SF、ZF、PF。 NOT指令形式上只有一个操作数;不影响任何标志位。 SAL、SAR、SHL、SHR指令的使用方法相同,对标志位的影响也相同:移出位给CF;根据结果改变SF、ZF、PF;当移位次数为1时,影响OF。 逻辑运算及移位指令小结(续) ROL、ROR、RCL、RCR的使用方法相同,对标志位的影响相同:移出位给CF;当移位次数为1时,影响OF。 使用SHR或SAR每移1位,可视为分别将无符号数和带符号数除以2;使用SHL/SAL每移1位,可视为将数值乘以2。 四、串操作 (1)MOVS(Move string)串传送 格式:MOVS dest,src 或 MOVSB (字节) 或 MOVSW (字) 其中第二、三种格式明确注明传送字节或字,第一种则应在操作数中表明是字还是字节操作 执行的操作: ①((ES):(DI))←((DS):(SI)) ②(SI)←(SI)±1,(DI)←(DI)±1 或(SI)←(SI)±2,(DI)←(DI)±2 当方向标志DF=0(即CLD)时用“+”;DF=1(即STD)时用“-”。 eg.将内存的数据段中以AREA1为首地址的100个数据,传送到附加段中以AREA2为首地址的区域。①用MOVS串操作指令编程实现的程序段如下: ②用MOV指令编程实现的程序段如下: eg.内存中有一个以BLOCK为首地址的数据块,其中有20个有符号字节数。现要求将数据块中正、负数分开,分别存于两个缓冲区:存放正数的缓冲区首址为PLUS-DATA,存放负数的缓冲区首址为MINUS-DATA 。 利用CMPS指令对STRING1和STRING2两个字符串进行比较,相同在RESULT单元送00H,不同送0FFH 。 1. 已知8086中一些寄存器的内容和一些存储单元的内容如图1,试指出下列各条指令执行后AX中的内容。 3. 识别下列指令的正确性,对错误的指令,说明出错的原因。 5. 设标志寄存器值原为0401H,AX = 3272H,BX = 42A2H。执行指令SBB AL,BH 之后,AX和标志寄存器的值分别是多少? 直接寻址过程示意图 寄存器间接寻址过程示意图 基址寻址过程示意图 变址寻址过程示意图 基址加变址寻址过程示意图 练习:用已学过的指令将TF置1 用移位指令实现乘、除法 SAL AX,1 ;实现AX×2 MOV BX,AX SAL AX,1 ;实现AX×4 ADD AX,BX ;实现AX×6 MOV BL,AL MOV CL,3 SHR AL,CL ;实现AL÷8 SUB BL,AL ;实现AL×7/8 循环控制转移指令的使用 MOV CX,10 (其它初始条件) NXT:(循环执行的指令) LOOP NXT (退出循环后的处理) 串传送举例 串传送指令及重复前缀应用例 MOV CX, 10H ;源串、目标串中字的个数 LEA SI, STR1 ;STR1:源串(数据段中)的首址标号 ADD SI, 30 ;SI指向源串的末地址 LEA DI, STR2 ;STR2:目标串(附加段中)首址标号 ADD DI, 30 ;DI指向目标串的末地址 STD ;DF=1,串指针自动减量 REP MOVSW ;完成16个字的传送 串比较指令及重复前缀举例 比较两个字符串是否相等: MOV CX, 20 ;源串、目标串的字符个数 LEA
文档评论(0)