资源描述:
《《汇编语言2》ppt课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、作业:P1121、2实验教程P604第4章汇编语言程序设计基本技术教学重点综合应用第2章硬指令和第3章伪指令,第4章从程序结构角度展开程序设计,重点掌握:分支结构程序设计循环结构程序设计汇编语言程序设计的过程通常都包括以下步骤:1.分析问题,确定算法2.编制程序流程3.正确、合理使用存贮器和寄存器4.编写程序5.调试运行程序程序的基本结构形式有:顺序程序、分支程序、循环程序和子程序。顺序程序的最大特点:程序从运行开始到结尾一直是按顺序逐条执行指令,且每条指令只执行一次。4.1顺序程序设计顺序程序完全按指令书写的前后顺
2、序执行每一条指令,是最基本、最常见的程序结构例4.1计算例4.2移位例题代码转换例4.1-1.modelsmall.stack.dataXdw5Ydw6Zdw7Wdw?.code.startupmovax,Xaddax,Yaddax,ZmovW,ax.exit0enddatasegmentXdw5Ydw6Zdw7Wdw?dataendscodesegmentassumecs:code,ds:datastart:pushds;保存旧的数据段地址subax,axpushax例4.1-2movax,data;将data数据
3、段地址movds,ax;送往ds段寄存器movax,Xaddax,Yaddax,ZmovW,axmovah,4chint21h;返回DOScodeendsendstart例4.2-1/2.dataqvardq1234567887654321h;定义4字变量.code.startupmoval,byteptrqvar[6]movbyteptrqvar[7],almoval,byteptrqvar[5]movbyteptrqvar[6],almoval,byteptrqvar[4]movbyteptrqvar[5],al
4、moval,byteptrqvar[3]movbyteptrqvar[4],almoval,byteptrqvar[2]movbyteptrqvar[3],al图示例4.2-2/2moval,byteptrqvar[1]movbyteptrqvar[2],almoval,byteptrqvar[0]movbyteptrqvar[1],almovbyteptrqvar[0],0.exit0end1234567887654321h3456788765432100h移位后图示64位数据左移8位123456788765432
5、100qvar[0]qvar[1]qvar[2]qvar[3]qvar[4]qvar[5]qvar[6]qvar[7]换码指令执行前:在主存建立一个字节量表格,内含要转换成的目的代码表格首地址存放于BX,AL存放相对表格首地址的位移量换码指令执行后:将AL寄存器的内容转换为目的代码换码指令XLAT(translate)将BX指定的缓冲区中、AL指定的位移处的一个字节数据取出赋给ALXLATXLAT;al←ds:[bx+al]例:代码转换movbx,100hmoval,03hxlat换码指令没有显式的操作数,但使用了B
6、X和AL;因为换码指令使用了隐含寻址方式——采用默认操作数XLAT例题代码转换-1/2;查表法,实现一位16进制数转换为ASCII码显示.modelsmall.stack256.dataASCIIdb30h,31h,32h,33h,34h,35hdb36h,37h,38h,39h;0~9的ASCII码db41h,42h,43h,44h,45h,46h;A~F的ASCII码hexdb0bh;任意设定了一个待转换的一位16进制数例题代码转换-2/2.code.startupmovbx,offsetASCII;BX指向AS
7、CII码表moval,hex;AL取得一位16进制数,正是ASCII码表中位移andal,0fh;只有低4位是有效的,高4位清0xlat;换码:AL←DS:[BX+AL]movdl,al;入口参数:DL←ALmovah,2;02号DOS功能调用int21h;显示一个ASCII码字符.exit0end4.2输入输出功能调用向显示器输出字符⒈字符的输出⒉字符串的输出从键盘输入数据⒊字符的输入⒋字符串的输入⒌按键的判断裸机ROM-BIOSDOS功能调用汇编语言程序第4章4.2.1中断指令中断(Interrupt)是一种改变
8、程序执行顺序的方法中断具有多种中断类型中断的指令有3条:INTi8IRETINTO本节主要掌握类似子程序调用指令的中断调用指令INTi8,进而学习使用DOS功能调用中断的过程主程序IRET中断服务程序断点中断请求中断请求可以来自处理器外部的中断源,也可以由处理器执行指令引起:例如执行INTi8指令。8086的外部中断8086可以管理256个中断