1、 微机原理与接口技术微机原理与接口技术 课程设计课程设计 计算机科学与技术学院计算机科学与技术学院 通信工程通信工程 2011-03-20 院院 系:系: 专专 业:业: 年级班级:年级班级: 学学 号:号: 姓姓 名:名: 指导教师:指导教师: 设计设计日期日期: 微机原理与汇编语言课程设计微机原理与汇编语言课程设计 一一. 课程设计目的课程设计目的 每个同学在 1-2 周时间内,用汇编语言独立完成一个程序题,以达到熟练运 用汇编语言编程实现有比较完整功能的程序的目的。 三、课程设计题目三、课程设计题目 四则运算:从键盘输入一个十进制两位数的四则运算表达式,如 23*56(8*19) /66
2、78,编程计算表达式的值,输出十进制结果(有可能是三位或四位十 进制),*/位置任意。并要求程序能反复执行直道对“还要继续吗?(y/n) ” 之类的提示回答“n”或“N”为止。 四、课题分析四、课题分析 该程序设计的关键是要根据四则运算中( ) 、*、/、+、-、= 的优先级设置 符号的权值,其中(、*、/、+、-、 ) 、= 的权值分别设置为 5、4、4、3、3、1、 0 ,然后根据权值的大小进行运算。程序使用数字标志 SIGN1、括号标志 SIGN2 分别来判断数字是否输入完毕和括号是否配对, 另外程序定义两个数据存储区域 NUMB 和 MARK,其中 NUMB 用来保存输入的或运算的数值
3、,MARK 用来保存输入的 符号及其对应的权值。程序不断判断输入的符号是否是左括号 ( ,当遇到左 括号是在存储区 MARK 保存其符号,紧跟着将 ( 的权值改为 2 并保存之,这 是为了使程序运算括号内的表达式,当遇到右括号) 时括号内运算将结束。 需要注意的是程序执行完括号内表达式的运算及乘除运算后将在存储区 MARK 中 覆盖符号(、 ) 、*、/ 及紧跟着的权值,使得程序在运算整个四则运算表达式时 当括号内表达式的运算及乘除运算结束后存储区 MARK 中只有 +、- 运算符 及紧跟着的权值,然后按照+、- 运算符的左右顺序从左到右进行 +、- 运 算,当最后遇到等号 = 时输出表达式的
4、数值,然后再根据提示判断是否继 续执行下一个四则运算表达式。 DATAS SEGMENT STR1 DB 0AH,0DH,* *$ STR2 DB 0AH,0DH,* *$ STR3 DB 0AH,0DH,* Welcome you ! *$ STR4 DB 0AH,0DH,* This is programe of sizeyunsuan *$ STR5 DB 0AH,0DH,* Rang(-32768 to 32767) *$ STR6 DB 0AH,0DH,* JikeB082 Hanyou 200807014225 *$ STR7 DB 0AH,0DH,* *$ STR8 DB 0AH,0DH,*