- 1、本文档共69页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
3.4指令系统-控制转移类(条件转移:中断)8086中断8086中断系统最大支持256个中断,每个中断具有唯一的中断号,且具有独立的中断服务程序。发生中断时CPU当前程序被暂停转而执行中断处理程序。8086中断内部中断外部中断可屏蔽中断非屏蔽中断可通过IF标志屏蔽的中断。各种外部设备的中断如:串行口、磁盘、时钟电路等。无法屏蔽的中断。一般为异常处理中断,如存储器奇偶校验错误。CPU内部产生的中断。包括:指令中断:执行INT指令产生的中断其他中断:除法错、溢出、单步等3.4指令系统-控制转移类(条件转移:中断)中断向量表中断向量:指向中断服务程序的段值和偏移量(CS:IP)中断向量表:8086PC的存储器最低端1KB空间,用于存放256个中断的中断向量表。偏移量段值中断255偏移量段值中断10H→3FFH→↑中断向量表↓偏移量段值中断0中断过程保存标志:(FLAGS)→堆栈保存当前地址:CS、IP→堆栈进入中断程序:[n×4]→IP,[n×4+2]→CS∶∶中断返回:堆栈→IP,堆栈→CS恢复标志:堆栈→(FLAGS)3.4指令系统-控制转移类(条件转移:中断)-功能调用指令中断INTn指令实现指令中断,通过中断指令可以调用系统程序。DOS为用户程序提供了系统功能调用INT21H,提供了丰富的服务程序,包括设备管理、目录管理和文件管理等。单字符输出——INT21H,02H号:向屏幕当前光标位置输出一个字符。入口参数:02H→AH,输出显示字符的ASCII码→DL单字符输入——INT21H,01H号:等待从键盘输入一个字符。入口参数:01H→AH出口参数:按键的ASCII码→AL字符串输出——INT21H,09H号:向屏幕光标位置输出一个字符串。入口参数:09H→AH,输出显示字符串首地址→DS:DX,字符串以“$”符号结束。字符串输入——INT21H,0AH号:从键盘输入一个字符串,回车键结束。入口参数:0AH→AH,输入存储区的首地址→DX,存储区第1个单元填写最大输入的字符个数。出口参数:输入的字符串长度→存储区第2个单元,输入的字符串从存储区第3个单元开始存放。3.4指令系统-控制转移类(条件转移:中断)-功能调用例.输入一个字符到CHAR变量中。 CHAR DB ? MOV AH,1 INT21H MOV CHAR,AL例.输出一个字符Y。 MOVAH,2 MOVDL,’Y’ INT21H3.4指令系统-CPU控制指令CLCSTCCMC——CF标志操作CLC 0→CFSTC 1→CFCMC ~CF→CFCLDSTD——DF标志操作CLD 0→DFSTD 1→DFCLISTI——IF标志操作CLI 0→IFSTI 1→IFNOP——空操作机器码占一个字节HLT暂停机等待外中断3.4指令系统-需要注意的地方1、立即数与直接寻址的区别:movax,126:将数据126送入ax寄存器movax,[126]:将数据段中126单元地址的内容送入ax2、寄存器寻址与寄存器间接寻址的区别:movax,bx:bx的内容送入到axmovax,[bx]:bx指示的地址的内容送入到ax3、指令对地址还是对地址中的内容进行操作?LEABX,MESS;MESS的偏移地址送BXMOVBX,OFFSETMESS;同上MOVBX,MESS;字变量MESS的内容送BX3.4指令系统-需要注意的地方4、使用指令时,清楚指令隐含的操作寄存器比如乘法,只指出源操作数的地址,而目的操作数必须放在AL/AX中;还有:换码指令XLAT、循环指令LOOP5、用移位指令来倍增或倍减时,要注意对于带符号数和无符号数所使用的指令应该不同AX=8520H,当AX为无符号数时,AX/2可以使用SHRAX,1,结果是AX=4290H;当AX为带符号数时,AX/2可以使用SARAX,1,结果是AX=0C290H;6、标号是程序中指令的符号地址,要注意和变量的区别。如果定义VAR是一个变量,LAB是程序的一个标号,则JMPLAB指令的转移地址为LAB,而JMPVAR是一条非法指令3.4指令系统-位操作类(逻辑与指令)逻辑与指令:ANDdest,src功能:将目的操作数和源操作数进行逻辑乘运算,结
文档评论(0)