欢迎来到天天文库
浏览记录
ID:15309238
大小:54.00 KB
页数:3页
时间:2018-08-02
《第08讲 算术运算类指令99905》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第八讲算术运算类指令教学方法:讲授法授课时数:2学时教学目的:1、熟悉数据运算类指令的操作方式特点2、理解二-十进制调整指令的含义3、熟练掌握加法指令教学重点:加法、减法指令教学难点:二-十进制调整指令教学环节:组织教学:考勤复习提问:direct、@Ri、@DPTR、Rn、#data、(x)、((x))的含义?新授课:§3-3算术运算类指令包括:加、减、乘、除;加一、减一。一、加法指令ADDA,Rn;(A)(A)+(Rn)以下类同。ADDA,directADDA,@RiADDA,#data无符号数相加时:若C=1,说明有溢出(其值>255)。带符号数相
2、加时:若OV=D7c⊕D6c=1,说明有溢出。ADDCA,Rn;(A)(A)+(Rn)+(C),以下类同。ADDCA,directADDCA,@RiADDCA,#data上述四条指令多用于多字节数相加。INCA;(A)(A)+1,以下类同。INCRnINCdirectINC@RiINCDPTR例1、设(R0)=7FH;(7EH)=40H执行:INC@R0INCR0INC@R0后,(R0)=7FH;(7EH)=00H;(7FH)=41H.DAA;二——十进制调整指令。执行过程中,CPU能根据加法运算后,累加器中的值和PSW中的AC及C标志位的状况自动选择一
3、个修正值(00H、06H、60H、66H)与原运算结果相加,进行二——十进制调整。选择修正值的规则:(A3~0)>9时或(AC)=1时,(A3~0)(A3~0)+6(A7~4)>9或(C)=1时,(A7~4)(A7~4)+6例2、设(A)=56H为56的压缩的BCD码数,(R3)=67H,(CY)=1执行ADDCA,R3DAA结果为:124注意:1)DA指令只能跟在加法指令后面使用;2)调整前参与运算的两数是BCD码数;3)DA指令不能与减法指令配对使用,但可以实现对A中压缩BCD减一操作。例3、设(A)=30H(压缩BCD码数),执行:ADDA,#99
4、HDAA后,便实现了30-1=29的操作。例4、两个4位BCD码相加,一个存放在(31H)(30H);另一个存放在(33H)(32H);和数拟回存在(31H)(30H)中,试编程实现之。解:MOVR0,#30HMOVR1,#32HMOVA,@R0ADDA,@R1DAAMOV@R0,AINCR0INCR1MOVA,@R0ADDCA,@R1DAAMOV@R0,A二、减法指令SUBBA,Rn;(A)(A)-(Rn)-(C),以下类同。SUBBA,directSUBBA,@RiSUBBA,#data注意:减法之前先清零C。DECA;(A)(A)-1,以下类同。D
5、ECRnDEC@RiDECdirect例5、设(R0)=7FH,在内RAM中,(7EH)=00H,(7FH)=40H执行:DEC@R0DECR0DEC@R0结果为:(R0)=7EH,(7EH)=0FFH,(7FH)=3FH。三、乘法和除法指令乘法:MULAB;(A)×(B),积的低8位在A中,积的高8位在B中;C总为0。除法:DIVAB;(A)÷(B),商在A中,余数在B中。若(B)=0,则结果不定,(OV)=1,(C)=0。例6、试将A中的二进制数转换为3位BCD码,其中,百位数存放于31H单元,十位数和个位数压缩后存于30H单元中。解;MOVB,#1
6、00DIVABMOV31H,AMOVA,#10XCHA,BDIVABSWAPAADDA,BMOV30H,A小结:算术运算类指令都有哪些类型?
此文档下载收益归作者所有