东北大学计算计组成原理课程设计报告 - 图文(4)

2019-03-15 13:11

ADC A,#00H ;加上低8位运算产生的进位 AD A,R2 ;重新计算高8位的结果

PUSH A ;压栈保存起来

NEXT : SL R0 ;被乘数带进位左移

SLL R2 ;高8位也相应带进位左移 SHR R1 ;乘数右移一位 GOTO LOOP ;LAST : POP A ; MOV R2,#00H ; ADD R2,A ; ENDP ;乘法流程图如下:

跳转到下一次测试

将高8位结果出栈 先清空R2的值 将高8位结果送入R2中 程序结束 开始初始化乘数与被乘数及存放最后结果的寄存器将R的值送入栈中先保存起来乘数是否为0N 测试被乘数 最低位是否为1YY计算部分积输出 结果N结束被乘数带进位左移乘数不带进位右移

(2)除法

8位除法的算法流程图与汇编语言程序清单:

MOV R0,#7EH ;初始化被除数126

MOV R1,#0BH ;初始化除数11 MOV R2,#0H ;初始化商0 MOV R3,#00H ;初始化计数器0 TEST R1,#0FFH ;测试除数是否为0

JZ OVERFLOW ;是0转到溢出处理 MOV A,R1 ;除数送累加器 PUSH A ;保存除数

LOOP: TEST R1,#80H ;测试R1的最高位是否为0

JZ ZERO ;为0则跳转到ZERO GOTO NEXT ;不为0就跳转到NEXT

ZERO: ADD R3,#01H ;NEXT: ADD R3,#01H ; JC NEGATIVE ; GOTO OVERFLOW ;NEGATIVE : SHL R2 ; SHR R1 ; ADD R3,#1H ; SUB R3,#4H ; JZ DEAL ; ADD R0,A ; JC POSITIVE ; GOTO NEGATIVE ;POSITIVE : SHL R2 ; ADD R2,#01H ; SHR R1 ; ADD R3,#01H ; JZ DEAL ;SHL R1 ;GOTO LOOP ;MOV A,R1 ;SUB R0,A ;SUB R3,#04H ;对计数器进行加1操作

对寄存器R1右移一位 继续循环

计算循环次数,保存到R3

移位后除数送累加器 被除数减去移位后除数

结果为负数,商0

首次没借位会得出5位商,溢出处理商左移一位

除数右移一位 计数器加1 计数器与4比较 计数器为4,处理结束

右移后的除数送累加器

上次运算结果加上右移后的除数 结果为正数,商1 结果为负数,商0 商左移一位

商加1 除数右移一位 计数器加1

计数器与4比较

计数器为4,跳转

移位后除数送累加器

MOV A,R1 ; MOV A,R1 ;SUB R0,A ;上次运算结果减去右移后除数

JC NEGATIVE ;结果为负数,商0 GOTO POSITIVE ;结果为正数,商1 DEAL : TEST R0,#80H ;测试余数是否为负

JZ LAST ;为正不用处理 POP A ;恢复除数 ADD R0,A ;GOTO LAST ;OVERFLOW: MOV R2,#0FFH ;LAST : ENDP ;无符号除法流程图如下:

余数加上除数 跳转到程序结束

溢出,商置全1 程序结束 开始初始化被除数R0,除数R1,商R2为 计算循环的次数,存入R3寄存器溢出处理Y除数R1为0 N被除数R0 减 除数R1恢复除数R2,余数R0 加 除数R2结束Y有借位么 N N余数R0为负Y商R2左移一位,加0商R2左移一位,加1除数R1右移一位,计数器R3减1 除数R1右移一位,计数器R3减1 Y计数器R3为1 N被除数R0 加除数 除数R1Y计数器R3为1 N被除数R0 减 除数R1 N有进位么有借位么 N

6.上述程序的运行情况(跟踪结果)

程序运行的过程: ① 乘法程序运行过程:


东北大学计算计组成原理课程设计报告 - 图文(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:1万头生猪养殖及年产6万吨有机肥项目可行性研究报告 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: