4.2.1顺序结构程序设计 顺序结构是按照逻辑操作顺序,从某一条指令开始逐条顺序 执行,直至某一条指令为止。 例2.数据传送和交换。 将R0与R7内容互换,R4与内存20H单元内容互换。 XCHR: MOV A, RO XCH A, R7 XCH A,R0;R0与R7内容互换 MOV A, R4 XCH A,20H XCH A,R4;R4与20H单元内容互换
顺序结构是按照逻辑操作顺序,从某一条指令开始逐条顺序 执行,直至某一条指令为止。 例2. 数据传送和交换。 将R0与R7内容互换,R4与内存20H单元内容互换。 XCHR:MOV A,R0 XCH A,R7 XCH A,R0 ;R0与R7内容互换 MOV A,R4 XCH A,20H XCH A,R4 ;R4与20H单元内容互换 4.2 .1 顺序结构程序设计
例3.不带符号多字节加法 设被加数存放于片内RAM的20H(低位字节)、21H (高位字节),加数存放于22H(低位字节)和23H(高位字 节),运算结果的和数存放于20H(低位字节)和21H(高位字 节)中。实现16位相加。其程序段如下: START: PUSH ACC ;将A中内容进栈保护 MOV RO, 20H ;将20H地址送R0 MOV RI, # 22H ;将22H地址值送R1 MOV A, RO ;被加数低字节内容送A ADD A, RI ;低字节数相加 MOV RO,A ;低字节数和存20H中 INC RO ;指向被加数高位字节
设被加数存放于片内RAM的20H(低位字节)、21H (高位字节),加数存放于22H(低位字节)和23H(高位字 节),运算结果的和数存放于20H(低位字节)和21H(高位字 节)中。实现16位相加。其程序段如下: START:PUSH ACC ;将A中内容进栈保护 MOV R0,#20H ;将20H地址送R0 MOV R1,#22H ;将22H地址值送R1 MOV A,@R0 ;被加数低字节内容送A ADD A,@R1 ;低字节数相加 MOV @R0,A ;低字节数和存20H中 INC R0 ;指向被加数高位字节 例3. 不带符号多字节加法
INC RI ;指向加数高位字节 MOV A, RO ;被加数高位字节送A MOVA,@R0;被加数高位字节送A ADDC A,@R1;高字节数带进位相加 MOV@R0,A;高字节数和存21H中 CLR A ADDCA, #OOH MOV 10H. A ;进位暂存于10H中 POP ACC ;恢复A原内容 这里将A原内容进栈保护,如果原R0、R1内容有用,亦 需进栈保护。如果相加结果高字节的最高位产生进位且有意义时, 应对标志CY位检测并处理之
INC R1 ;指向加数高位字节 MOV A,@R0 ;被加数高位字节送A MOV A,@R0 ;被加数高位字节送A ADDC A,@R1 ;高字节数带进位相加 MOV @R0,A ;高字节数和存21H中 CLR A ADDCA, #00H MOV 10H, A ;进位暂存于10H中 POP ACC ;恢复A原内容 这里将A原内容进栈保护,如果原R0、R1 内容有用,亦 需进栈保护。如果相加结果高字节的最高位产生进位且有意义时, 应对标志CY位检测并处理之
注意:对于对带符号数原码的减法运算,只要先将减数原码的符 号位取反,即可把减法运算按加法运算的原则来处理。 对于带符号数的加法运算,首先要进行两数符号的判定, 若两数符号相同,则进行两数相加,并以被加数符号为结果的符 号 如果两数符号不同,则进行两数相减。如果相减结果为正 则该数即为最后结果,并以被减数符号为结果的符号。如果两数 相减的结果为负,则应将其差数取补,并把被减数的符号取反后 作为结果的符号
注意:对于对带符号数原码的减法运算,只要先将减数原码的符 号位取反,即可把减法运算按加法运算的原则来处理。 对于带符号数的加法运算,首先要进行两数符号的判定, 若两数符号相同,则进行两数相加,并以被加数符号为结果的符 号。 如果两数符号不同,则进行两数相减。如果相减结果为正, 则该数即为最后结果,并以被减数符号为结果的符号。如果两数 相减的结果为负,则应将其差数取补,并把被减数的符号取反后 作为结果的符号
例4.带符号双字节二进制数加减法程序 已知两个16位的带符号数分别存放在工作寄存器R2(高字 节)、R3(低字节)和R4(高字节)、R5(低字节)中,二个数的 D15位为符号位。请编写多字节带符号数的加法和减法运算程序。 减法入口地址为标号BSUB,加法入口地址为BADD。运算结果存 入R6(高字节)和R7(低字节) BSUB: MOV A, R4 ;取减数高字节 CPL ACC.7 ;减数原码符号取反以进行加法 MOV R4, A
已知两个16位的带符号数分别存放在工作寄存器R2(高字 节) 、R3(低字节) 和R4(高字节)、R5(低字节) 中,二个数的 D15位为符号位。请编写多字节带符号数的加法和减法运算程序。 减法入囗地址为标号BSUB,加法入口地址为BADD。运算结果存 入R6(高字节)和R7(低字节) 。 BSUB:MOV A,R4 ;取减数高字节 CPL ACC.7 ;减数原码符号取反以进行加法 MOV R4,A 例4. 带符号双字节二进制数加减法程序