第9讲微机原理ppt课件.ppt
上传人:王子****青蛙 上传时间:2024-09-10 格式:PPT 页数:51 大小:1.4MB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

第9讲微机原理ppt课件.ppt

第9讲微机原理ppt课件.ppt

预览

免费试读已结束,剩余 41 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

上一讲内容回顾0第三章8086的通用指令§3.4.6控制传送指令所有的程序控制转移类指令均不影响标志位(2)间接转移操作数一般是一个存储器操作数,真正的转移地址在内存中。(操作数是寄存器时例外)分为两种情况:段内间接转移和段间间接转移1)段内间接转移:格式:JMPWORDPTROPRD转移地址存放在内存单元中,转移指令后给出的是内存单元的地址。2)段间间接转移:格式:JMPDWORDPTROPRD转移地址存放在内存单元中,一般用寄存器间接寻址。JMP0120H;直接转向0120H2、条件转移指令:功能:根据条件来判断程序是否转移。满足条件时程序转向指定位置执行,否则,程序顺序执行。(注意:此时程序出现分支)按转移条件不同,条件转移指令可以分为四大类:①以单个状态标志作为转移条件助记符转移条件助记符注意几点:所有条件转移指令都是相对转移形式,范围(-128~+127)。当需往一个较远地方进行条件转移时,选用条件转移转到附近一个单元,然后,再用无条件转移转到较远的目的地。②条件转移指令中,相当一部分指令是在比较完二个数大小后,根据结果而决定是否转移,③条件转移指令不影响标志位条件转移指令常用来进行判断,以实现程序分支:条件转移指令应用例:比较二个数是否相等如相等做动作1否则做动作2……CMPAX,BXJEaction_1Action_2:…………action_1:……下面程序段在什么情况下执行的结果是AL=0从数据区BCDBUF开始存放着10个用非压缩BCD码表示的十进制数,要求把它们分别转换成ASCII码后存入另一缓冲区。3、循环控制指令编程时,可以用条件转移指令控制循环,如:MOVCX,10AGAIN:ADDAX,1DECCXJNZAGAIN也有专用的循环控制指令(3条)。3条指令控制转移范围均在-128~127字节内;循环前必须将循环次数赋值给CX。1)格式:LOOP标号下面程序段执行后,AX=?MOVCX,40LEASI,TABLENEXT:CMPBYTEPTR[SI],0JNZOKKINCSILOOPNEXTOKK:CALLDISPLAY2与条件转移指令不同的是:循环指令隐含(CX)减1操作。例:用循环指令将BL寄存器的内容按二进制形式显示出来MOVCX,8next:ROLBL,1MOVDL,BLANDDL,00000001BADDDL,00110000BMOVAH,2INT21HDECCXJNZnext……循环指令说明:LOOP退出循环条件是(CX)=0LOOPZ和LOOPNZ提供了提前结束循环的可能,不一定要等到(CX)=0才退出循环。▲在串中查找字符,查到了,就可退出,可用LOOPNZ,不相等时继续查找。▲比较两串时,当有字符不等,就可退出,说明两字符串不等。可用LOOPZ,当相等时继续比较。▲执行完LOOPNZ或LOOPZ后,根据ZF标志的值判断结果对查找字符,ZF=1,说明找到;否则没有找到。对串比较,ZF=1,说明两串相等;否则不等。4、子程序调用和返回指令1)段内调用:子程序距调用语句不超过64KB,在同一个代码段内,调用时,只改变IP即可。如执行CALLAA,AA标号的偏移地址是8050HCALLnear_procCALL执行时,它首先将IP内容压栈,然后把指令中给出的位移量加到IP上。(SP)←(SP)-2(SP)←(IP)(IP)←near_proc2)段间调用:子程序距调用语句可以超过64KB,不在同一代码段,调用时,需要同时改变CS和IP。段间调用步骤:将调用指令后的第一条指令地址的CS入栈;将调用指令后的第一条指令地址的IP入栈;将调用目的地地址的段地址赋值CS;将调用目的地地址的偏移地址赋值IP;执行子程序,直至遇到RET指令;将栈顶当前内容赋值IP;将栈顶当前内容赋值CS;返回主程序。CALLfar_proc;far_proc为远过程的地址指令的操作为:SP←(SP)-2(SP)←(CS);CS压栈SP←(SP)-2(SP)←(IP);IP压栈CS←段地址IP←偏移地址例:CALL2000H:1000H3)返回指令:RET段内返回指令RET的操作为:IP←(SP);栈顶内容弹出到IPSP←(SP)+2段间返回指令RET的操作为:IP←(SP);栈顶内容弹出到IPSP←(SP)+2CS←(SP);栈顶内容弹出到CSSP←(SP)+24)软件中断指令、溢出中断指令CPU响应一次中断自动完成三件事情:(PSW)入栈—保护现场,(CS),(I