芀螆蒅第八讲算术运算类指令蚃螀螀教学方法:讲授法蚁蒈蒁授课时数:2学时螅袀蒇教学目的:袇袆薅1、熟悉数据运算类指令的操作方式特点蒄羀膁2、理解二-十进制调整指令的含义芈蚈衿3、熟练掌握加法指令芃莄膆教学重点:虿肆薄加法、减法指令芆莃薂教学难点:芄肂蚁二-十进制调整指令荿螇羅教学环节:蚅蒀蚄组织教学:考勤肈袇羃复习提问:袂节聿direct、***@Ri、***@DPTR、Rn、#data、(x)、((x))的含义?袇羇羈芃蚀螄新授课:§3-3算术运算类指令袀羇肀包括:加、减、乘、除;加一、减一。蚄莁螁一、加法指令虿肇蒃ADDA,Rn;(A)(A)+(Rn)以下类同。肄衿薀ADDA,direct蒇膇芇ADDA,***@Ri膁薁羄ADDA,#data膆芇芁无符号数相加时:若C=1,说明有溢出(其值>255)。薂聿蚀带符号数相加时:若OV=D7c⊕D6c=1,说明有溢出。艿莇蚇羃螁蚆ADDCA,Rn;(A)(A)+(Rn)+(C),以下类同。肈蒆芄ADDCA,direct莄腿螀ADDCA,***@Ri螇薆肈ADDCA,#data螅袁膄上述四条指令多用于多字节数相加。袀薆肃袂蚃袀INCA;(A)(A)+1,以下类同。蕿蚆葿INCRn莃肀袆INCdirect莈螆袂******@Ri螃螂罿INCDPTR膆袆薆膄芀莄例1、设(R0)=7FH;(7EH)=40H腿羆薁执行:******@R0芁羂聿INCR0羈肅羇******@R0后,蚂蒀肆(R0)=7FH;(7EH)=00H;(7FH)=;二——十进制调整指令。螀膅莈执行过程中,CPU能根据加法运算后,累加器中的值和PSW中的AC及C标志位的状况自动选择一个修正值(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,R3莂蒁艿DAA聿薅膀结果为:124螃罿蚃注意:1)DA指令只能跟在加法指令后面使用;袈蚅膅2)调整前参与运算的两数是BCD码数;膄蚁荿3)DA指令不能与减法指令配对使用,但可以实现对A中压缩BCD薇螄芆减一操作。薅聿莅蚀螄羃例3、设(A)=30H(压缩BCD码数),执行:螂袁葿ADDA,#99H葿袄蚇DAA膃薃肇后,便实现了30-1=29的操作。膈羄螂例4、两个4位BCD码相加,一个存放在(31H)(30H);另一个存放在薄羁蕿(33H)(32H);和数拟回存在(31H)(30H)中,试编程实现之。羇肄肈解:MOVR0,#30H羅蚂薅MOVR1,#32H羀膄薁MOVA,***@R0肁膀蚈ADDA,***@R1螈芄葿DAA蒂袂芇******@R0,A薇薈薄INCR0袃莀蚈INCR1薀蚈蚆MOVA,***@R0芄肂螅ADDCA,***@R1荿螇莃DAA蚅蒀螈******@R0,A肈袇肇袂节蒇二、减法指令袇羇肂SUBBA,Rn;(A)(A)-(Rn)-(C),以下类同。芃蚀膂SUBBA,direct袀羇蒈SUBBA,***@Ri蚄莁袄SUBBA,#data虿肇膅注意:减法之前先清零C。肄衿节蒇膇衿DECA;(A)(A)-1 ,以下类同。膁薁蚆DECRn膆芇袃******@Ri薂聿莂DECdirect艿莇艿例5、设(R0)=7FH,在内RAM中,(7EH)=00H,(7FH)=40H羃螁肄执行:******@R0肈蒆蚂DECR0莄腿莂******@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,#100袅莃蒆DIVAB芁莀膆MOV31H,A羈莃膀MOVA,#10蚂螇薀XCHA,B蚇蒃膅DIVAB肃葿芆SWAPA蒅薃薁ADDA,B腿羇羈MOV30H,A芄蚃芈小结:算术运算类指令都有哪些类型?以下无正文仅供个人用于学习、研究;不得用于商业用途。Forpersonaluseonlyinstudyandresearch;、研究;不得用于商业用途。NurfürdenpersönlichenfürStudien,Forschung,'
第08讲算术运算类指令 来自淘豆网m.daumloan.com转载请标明出处.