运算程序设计

2.3 运算程序设计实验

2.3.1 实验目的

了解运算类指令以及运算类程序的设计方法。

2.3.2 实验设备

PC 机一台,TD-NMC+教学实验系统、或“TD-PIT++教学实验系统+TD-51 系统平台”、或

“TD-PITE 教学实验系统+TD-51 系统平台”

2.3.3 实验内容

1. 多字节十进制加法程序,被加数存放于 20H 起始的 RAM 空间,加数存放于 2AH 起始的

RAM 空间,将两数相加,结果存放于 20H 起始的 RAM 空间;

2. 双字节无符号数乘法程序,被乘数在 R2R3 中,乘数在 R4R5 中,将相乘的结果保存在

20H ~23H 中;

3. 双字节除法程序,被除数在 R7R6 中,除数在 R5R4 中,将商存入 R7R6 中,余数存入

R3R2 中。

2.3.4 实验步骤

1. 多字节加法程序

Asm3-1.asm

实验参考例程:( )

ORG 0000H

LJMP MAIN

ORG 0100H ; 执行程序前先修改R7的值

MAIN: MOV R0, #20H ; 被加数起始地址

MOV R1, #2AH ;加数起始地址

CLR C

LP1: MOV A, @R0

ADDC A, @R1 ; 带进位加法运算

DA A ; 十进制调整

MOV @R0, A ; 保存运算结果

INC R0 ; 指向下一单元

INC R1

DJNZ R7, LP1

CLR A

MOV ACC.0, C

MOV @R0, A ; 最高位有进位时此地址中为1

NOP

SJMP MAIN ; 设置断点查看运算结果

; 若需继续运算, 改变加数, 被加数及R7

END

实验步骤:

(1)编写实验程序,程序流程图如图 2-3-1 所示,编译、链接无误后,进入调试状态;

(2)为被加数及加数赋值,即 4574 与 6728,低位在低字节,修改字节数 R7 为 2;

(3)在语句行 SJMP MAIN设置断点,然后运行实验程序;

(4)当程序停止运行时,查看 20H 单元起始的内容,应为 02、13、02;

(5)修改被加数、加数及字节数 R7 的值,重新运算,验证程序的功能。

2. 双字节无符号数乘法

利用单字节乘法指令来扩展成多字节乘法运算,扩展时以字节为单位进行乘法运算。假定 被乘数为 R2R3,乘数为 R4R5,乘积写入 R0 指向的内部 RAM 空间,运算法则见图 2-3-2。

实验参考程序:(Asm3-2.asm )

ORG 0000H

LJMP MAIN

ORG 0100H

MAIN: MOV R0, #23H ; 运算结果低位地址

MOV A, R0

PUSH ACC

CLR A

MOV R7, #4

LP1: MOV @R0, A ; 运算结果存储单元清零

DEC R0

DJNZ R7, LP1

POP ACC

MOV R0, A

MOV A, R3

MOV B, R5 MUL AB ; 计算R3*R5

MOV @R0, A ; 计算的低8位保存

MOV A, B

DEC R0

MOV @R0, A ; 保存运算的高8位

MOV A, R2

MOV B, R5

MUL AB ; 计算R2*R5

ADD A, @R0 ; 此次运算低8位+R3*R5运算的高8位

MOV @R0, A

DEC R0

MOV A, B

ADDC A, #00H ;R2*R5的高8位加进位位

MOV @R0, A

INC R0

MOV A, R3

MOV B, R4

MUL AB ; 计算R3*R4

ADD A, @R0

MOV @R0, A

MOV A, B

DEC R0

ADDC A, @R0

MOV @R0, A

DEC R0 CLR A

ADDC A, #00H

MOV A, @R0

MOV A, R2

MOV B, R4

MUL AB ; 计算R2*R4

INC R0

ADD A, @R0

MOV @R0, A

MOV A, B

DEC R0

ADDC A, @R0

MOV @R0, A

NOP

LJMP MAIN ; 设置断点查看运算结果

; 如需进行下一次运算, 可修改R2R3,R4R5的值

END

实验步骤:

(1)编写实验程序,经编译、链接无误后,联机调试;

(2)改变被乘数 R2R3 及乘数 R4R5 的值,如 0x03、0x50 和 0x04、0x60;

(3)在语句行 LJMP MAIN设置断点,然后运行程序;

(4)程序停止后,查看存储区 20H 、21H 、22H 、23H 的内容,应为 00、0E 、7E 、00;

(5)重新改变被乘数 R2R3 及乘数 R4R5 的值,运行程序,验证程序的正确性。

2.3 运算程序设计实验

2.3.1 实验目的

了解运算类指令以及运算类程序的设计方法。

2.3.2 实验设备

PC 机一台,TD-NMC+教学实验系统、或“TD-PIT++教学实验系统+TD-51 系统平台”、或

“TD-PITE 教学实验系统+TD-51 系统平台”

2.3.3 实验内容

1. 多字节十进制加法程序,被加数存放于 20H 起始的 RAM 空间,加数存放于 2AH 起始的

RAM 空间,将两数相加,结果存放于 20H 起始的 RAM 空间;

2. 双字节无符号数乘法程序,被乘数在 R2R3 中,乘数在 R4R5 中,将相乘的结果保存在

20H ~23H 中;

3. 双字节除法程序,被除数在 R7R6 中,除数在 R5R4 中,将商存入 R7R6 中,余数存入

R3R2 中。

2.3.4 实验步骤

1. 多字节加法程序

Asm3-1.asm

实验参考例程:( )

ORG 0000H

LJMP MAIN

ORG 0100H ; 执行程序前先修改R7的值

MAIN: MOV R0, #20H ; 被加数起始地址

MOV R1, #2AH ;加数起始地址

CLR C

LP1: MOV A, @R0

ADDC A, @R1 ; 带进位加法运算

DA A ; 十进制调整

MOV @R0, A ; 保存运算结果

INC R0 ; 指向下一单元

INC R1

DJNZ R7, LP1

CLR A

MOV ACC.0, C

MOV @R0, A ; 最高位有进位时此地址中为1

NOP

SJMP MAIN ; 设置断点查看运算结果

; 若需继续运算, 改变加数, 被加数及R7

END

实验步骤:

(1)编写实验程序,程序流程图如图 2-3-1 所示,编译、链接无误后,进入调试状态;

(2)为被加数及加数赋值,即 4574 与 6728,低位在低字节,修改字节数 R7 为 2;

(3)在语句行 SJMP MAIN设置断点,然后运行实验程序;

(4)当程序停止运行时,查看 20H 单元起始的内容,应为 02、13、02;

(5)修改被加数、加数及字节数 R7 的值,重新运算,验证程序的功能。

2. 双字节无符号数乘法

利用单字节乘法指令来扩展成多字节乘法运算,扩展时以字节为单位进行乘法运算。假定 被乘数为 R2R3,乘数为 R4R5,乘积写入 R0 指向的内部 RAM 空间,运算法则见图 2-3-2。

实验参考程序:(Asm3-2.asm )

ORG 0000H

LJMP MAIN

ORG 0100H

MAIN: MOV R0, #23H ; 运算结果低位地址

MOV A, R0

PUSH ACC

CLR A

MOV R7, #4

LP1: MOV @R0, A ; 运算结果存储单元清零

DEC R0

DJNZ R7, LP1

POP ACC

MOV R0, A

MOV A, R3

MOV B, R5 MUL AB ; 计算R3*R5

MOV @R0, A ; 计算的低8位保存

MOV A, B

DEC R0

MOV @R0, A ; 保存运算的高8位

MOV A, R2

MOV B, R5

MUL AB ; 计算R2*R5

ADD A, @R0 ; 此次运算低8位+R3*R5运算的高8位

MOV @R0, A

DEC R0

MOV A, B

ADDC A, #00H ;R2*R5的高8位加进位位

MOV @R0, A

INC R0

MOV A, R3

MOV B, R4

MUL AB ; 计算R3*R4

ADD A, @R0

MOV @R0, A

MOV A, B

DEC R0

ADDC A, @R0

MOV @R0, A

DEC R0 CLR A

ADDC A, #00H

MOV A, @R0

MOV A, R2

MOV B, R4

MUL AB ; 计算R2*R4

INC R0

ADD A, @R0

MOV @R0, A

MOV A, B

DEC R0

ADDC A, @R0

MOV @R0, A

NOP

LJMP MAIN ; 设置断点查看运算结果

; 如需进行下一次运算, 可修改R2R3,R4R5的值

END

实验步骤:

(1)编写实验程序,经编译、链接无误后,联机调试;

(2)改变被乘数 R2R3 及乘数 R4R5 的值,如 0x03、0x50 和 0x04、0x60;

(3)在语句行 LJMP MAIN设置断点,然后运行程序;

(4)程序停止后,查看存储区 20H 、21H 、22H 、23H 的内容,应为 00、0E 、7E 、00;

(5)重新改变被乘数 R2R3 及乘数 R4R5 的值,运行程序,验证程序的正确性。


相关文章

  • 小学六年级数学集体备课记录表
  • 小学集体备课记录表 分数四则混合运算(初议稿) 六年级 试教:XXX [教材简析] 分数四则混合运算的学习基础是:整数.小数四则混合运算.分数加.减.乘.除计算.以及整数小数四则运算中运算律的使用.由于有了大量的知识基础,教材安排了一个具体 ...查看


  • 有理数乘法2教学设计
  • 1.4.1有理数的乘法(2)教学设计 一.内容和内容解析 1. 内容 多个有理数相乘的法则,有理数乘法的运算律. 2. 内容解析 多个有理数相乘的法则是在学习了有理数的乘法法则之后通过具体运算,规律自然就形成了,而有理数的运算律在规定学习有 ...查看


  • 新代数控车床宏程序说明
  • 一.用户宏程序的基本概念 用一组指令构成某功能,并且象子程序一样存储在存储器中,再把这些存储的功能由一个指令来代表,执行时只需写出这个代表指令,就可以执行其相应的功能. 在这里,所存储的一组指令叫做宏程序体(或用户宏程序) ,简称为用户宏. ...查看


  • 第一单元四则运算教案 1
  • 表格式教学设计模板 四年级数学全册教学计划 一.指导思想: 课标教材四年级数学下册,是以<全日制义务教育数学课程标准(实验稿) > 的基本理念和所规定的教学内容为依据,在总结现行九年义务教育小学数学教材研究和使用经验的基础上编写 ...查看


  • 集成运放基本运算电路的分析与设计
  • 实 验 报 告 实验名称 集成运放基本运算电路的分析与设计 课程名称 模电实验 院系部:控计 专业班级: 学生姓名: 学号: 同组人: 实验台号: 指导老师: 成绩: 实验日期: 华北电力大学 一.实验目的和要求 1.掌握使用集成运算放大器 ...查看


  • 含有小括号的三步计算式题
  • <含有小括号的三步计算式题> 授课类 型 新授课 教学目 标 1.使学生联系已有知识,掌握含有小括号的三步计算混合运算的运算顺序,能说明算式的运算顺序,并正确计算得数. 2.使学生利用两步计算运算顺序类推学习和归纳三步计算的运算 ...查看


  • Java入门(5) JAVA语言基本语法
  • 摘要 本章中主要通过详尽的实例,配以合理的练习,让读者了解.掌握Java语言的基本语法.通过本章的学习,读者应能学会:Java程序的结构.变量.方法.运算符.表达式等,以便今后编写Java程序时更加得心应手. (2002-08-29 14: ...查看


  • 二阶运算放大器设计与仿真
  • 苏 州 市 职 业 大 学 实习(实训) 说明书 名称 2014年9月1日至2014年9月5日共1 周 院 部 电子信息工程学院 班 级 12微电子技术2班 姓 名 院 长 张 欣 系 主 任 指导教师 校外指导教师 目录 第一章 绪论 . ...查看


  • 集合的基本运算教学设计
  • 集合的基本运算教学设计 祁福义 一.教学目标: 知识与技能:理解集合的基本运算的定义,掌握集合的基本运算的运算性质,培养学生熟练运用集合运算的能力. 过程与方法:通过类比实数的运算引导学生自主探索集合的基本运算,借助韦恩图表示集合的基本运算 ...查看


热门内容