免费预览已结束,剩余30页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录 摘 要 1 1 程序设计要求及目的 2 1 1 程序设计要求 2 1 2 程序设计目的 2 2 设计思路与准备 3 2 1 程序设计思路 3 2 2 DOS 功能调用 4 2 3 ASC 码转换表 7 3 程序设计与代码说明 8 3 1 流程图设计 8 3 2 程序输入部分 9 3 3 程序判断部分 10 3 4 程序输出部分 12 3 4 1 构成三角形的边长输出 12 3 4 2 错误输出 13 3 5 完整程序代码 13 4 程序调试与运行 17 4 1 调试过程 17 5 程序创新与改进 20 5 1 改进说明 20 5 2 程序代码 21 5 3 程序运行与调试 22 6 心得及体会 22 7 参考文献 24 附件一 题目要求源程序 附件二 加入判断等腰或等边三角形的程序 武汉理工大学 微机原理与接口技术 课程设计说明书 0 摘 要 汇编语言是面向机器的程序设计语言 在汇编语言中 用助记符代替机器 指令的操作码 用地址符号或标号代替指令或操作数的地址 如此就增强了程 序的可读性和编写难度 象这样符号化的程序设计语言就是汇编语言 因此亦 称为符号语言 使用汇编语言编写的程序 机器不能直接识别 还要由汇编程 序或者叫汇编语言编译器转换成机器指令 汇编程序将符号化的操作代码组装 成处理器可以识别的机器指令 这个组装的过程称为组合或者汇编 因此 有 时候人们也把汇编语言称为组合语言 汇编语言是微机原理及应用的基础 微机主机及接口所要实现的功能都要 通过汇编语言来实现 尽管汇编语言程序设计编程效率偏低 但运行效率高 速度快 因此掌握汇编语言是学好微机原理及接口技术的第一步 本次课设通过代码编程 设计出输入三边并判断它们是否能够成三角形 若不能 则显示错误字样 否则直接显示输出该三角形的周长 充分应用汇编 技术 微机原理和接口技术的知识 关键词 关键词 汇编语言 控制 微机原理及接口技术 三角形 武汉理工大学 微机原理与接口技术 课程设计说明书 1 1 程序设计要求及目的 1 1 程序设计要求 1 1 1 选题 第十四题 判断是否能构成三角形汇编语言程序设计 输入a b c 三边后 判断是否能构成三角形 如能构成三角形 输出三 角形的周长 否则输出 ERROR 要求 提示输入三角形三边长度a b c 键 盘输入 中间空格隔开 Enter 键结束输入 并换行显示判断结果 1 1 2 要求 1 程序需上机调试通过才算完成该设计内容 2 同一选题可合作完成 但设计报告书需注明本人承担的设计部分 3 报告书中的源程序要求加注释 1 2 程序设计目的 1 进一步建立微机系统的概念 加深对系统的理解和认识 培养学生应用微 型计算机解决实际问题的能力 2 进一步学习和掌握汇编语言程序的编写和应用的方法 通过较大规模程序 的编写 提高编写汇编语言程序的水平和学习程序调试方法 3 进一步熟悉微机最小系统的构成及常用接口芯片的使用 提高系统设计能 力 武汉理工大学 微机原理与接口技术 课程设计说明书 2 2 设计思路与准备 2 1 程序设计思路 2 1 1 构成三角形的条件 由三角形定理克制 三边构成三角形的充要条件 1 任意两边之和大于 第三边 2 任意两边之差小于第三边 令给出三遍长度分别为 a b c 转 换为字母表示如下 1 a b c a c b b c a 2 a b c a c b b c 等待 DOS 命令 8 直接输入 输出单字符 6 号功能调用 格式 MOV DL 输入 输出标志 MOV AH 06H INT 21H 功能 执行键盘输入操作或屏幕显示输出操作 但不检查 Ctrl Break 组合键 是否按下 执行这两种操作的选择由 DL 寄存器中的内容决定 当 DL 0FFH 时 执行键盘输入操作 若标志 ZF 0 AL 中放入字符的 ASCII 码 若标志 ZF 1 表示无键按下 这种调用用来检测键盘是否有键按下 但不等待键盘输入 当 DL 0FFH 时 表示将 DL 中内容送屏幕显示输出 武汉理工大学 微机原理与接口技术 课程设计说明书 6 DOS 功能调用表 功能号功能入口参数出口参数 01H带回显的键盘输入 AL 输入字符 DL FF 输入 06H直接控制台 I O DL 字符 输出 AL 输入字符 0AH字符串缓冲输入DS DX 缓冲区首址 02H字符显示DL 输出字符 04H串行口输出字符DL 输出字符 05H字符打印DL 输出字符 09H字符串显示DS DX 缓冲区首址 2 3 ASC 码转换表 编程涉及的部分ASC 码转换如下表所示 八进制十六进制十进制字符解释 150D13CR回车键 402032 space 空格 6030480数字 0 6131491数字 1 6232502数字 2 6333513数字 3 6434524数字 4 6535535数字 5 6636546数字 6 6737557数字 7 7038568数字 8 7139579数字 9 武汉理工大学 微机原理与接口技术 课程设计说明书 7 3 程序设计与代码说明 3 1 流程图设计 结束 开始 输入 a b c 将 a b c 转化为 ASC 码 将数字转换为十进制 a b c a c b b c a 输出周长 计算周长 a b c ERROR 返回 Y Y N N N 图 2 主程序流程图 武汉理工大学 微机原理与接口技术 课程设计说明书 8 3 2 程序输入部分 3 2 1 程序说明 为保证界面的美观 在输入 a b c 之前希望界面显示提示输入的字符 在数 据段可以定义 利用功能调用代码 MOV AH 9 显示提示输入的字符串 程序输入部分要求键盘输入 a b c 的值 则需要调用 DOS 功能 键盘单字符输 入的代码指令为 MOV AH 1 CBW 代码是将输入在 AL 中的数扩展到 AH 中从而得到 AX 的值 输入空格的功能调用操作指令为 MOV AH 2 分别在三次单字符键入后使用保 证没输入完成一个字符后自动空格 利用回车完成输入结束等待继续程序可以用 CMP AL 0DH 和 JNE INPUT 实现 由于回车的 ASC 码为 0DH 故输入回车时两者相等程序继续 若输入 字符不为回车 则执行 JNE 后的程序段 跳转至输入程序段首重新等待输入 3 2 2 程序代码 INPUT LEA DX BUFF1 MOV AH 9 显示 请输入 a b c 的值 字样 INT 21H MOV AH 1 输入 a 值 INT 21H CBW 将 AL 数中的符号位扩展到 AH 中得 AX MOV BX AX 将 a 的值存入 BX 中 MOV AL 20H MOV AH 2 在字母 a 的值键入后输出空格 INT 21H MOV AH 1 输入 b 的值 武汉理工大学 微机原理与接口技术 课程设计说明书 9 INT 21H CBW 将 AL 数中的符号位扩展到 AH 中得 AX MOV CX AX 将 b 的值存入 CX 中 MOV AL 20H MOV AH 2 在字母 b 的值键入后输出空格 INT 21H MOV AH 1 输入 c 的值 INT 21H CBW 将 AL 数中的符号位扩展到 AH 中得 AX MOV DX AX 防止 AX 中数据改变 MOV AH 1 输入任意字符 INT 21H CMP AL 0DH JNE INPUT 若此时输入字符不为回车则返回重新输入部分 3 3 程序判断部分 3 3 1 程序说明 要判断是否能够成三角形即判断是否满足先前三个等式的条件 故需计算 三次 其中任意一次的结果不满足等式则自动跳转至错误显示环节 若三者均 满足 则程序继续运行并计算三角形三边周长 再输入部分代码以 ASC 码存储 运算时需将其还原至数值形式 故先要将 DX BX CX 寄存器中的数值减 30H 得运算数值 三边边长比较时 先利用 ADD 语句将任意两边分别相加然后与第三边比较 若前两边不大于 即小于等于第三边值 则跳转至 ERROR 不能构成三角形 在满足条件时 利用 ADC 进行三边边长的求和 武汉理工大学 微机原理与接口技术 课程设计说明书 10 3 3 2 程序代码 JUDGE SUB DX 30H 将输入后 c 的 ASC 码转换为数值型 SUB BX 30H 将输入后 a 的 ASC 码转换为数值型 SUB CX 30H 将输入后 b 的 ASC 码转换为数值型 MOV AX BX 将 BX 的数值存入 AX 寄存器 ADD AX CX 计算 BX CX 的长度 CMP AX DX BX CX 的值与第三边 DX 作比较 JNG ERROR 若 BX CX DX 则跳转至 ERROR MOV AX CX 将 BX 的值送入 DX ADD AX DX 计算 DX CX 的长度 CMP AX BX DX CX 的值与第三边 BX 作比较 JNG ERROR 若 DX CX BX 则跳转至 ERROR MOV AX DX 将 AX 的值送入 DX ADD AX BX 计算 DX BX 的长度 CMP AX CX DX BX 的值与第三边 CX 作比较 JNG ERROR 若 DX BX c 则跳转至 ERROR MOV AX BX 若三边均满足条件 则计算周长 ADC AX CX 计算两边长度和 ADC AX DX DX a b c 武汉理工大学 微机原理与接口技术 课程设计说明书 11 3 4 程序输出部分 3 4 1 构成三角形的边长输出 3 4 1 1 程序说明 首先利用功能调用声明可以构成三角形 显示 三角形的周长为 字符 以增强程序的阅读性和完整性 由于三边周长的数值储存在 AX 寄存器中 而之后的功能调用需要对 AH 进 行赋值 为了防止 AX 中三边边长和的数值被改变 利用 PUSH 语句先将 AX 存入 堆栈 进行完功能调用操作后再利用 POP 语句将 AX 出栈而保持先前周长的数值 便于之后的运算 为了将 AX 中 16 位的数值转换为十进制 我们要利用 DIV 操作 显示输出时 需将 AX 中的 AH 和 AL 单独分开显示 并将运算数值逆运算 转换为 ASC 码显示 故需要将两寄存器分别加上 30H 还原 3 4 1 2 程序代码 OUTPUT PUSH AX LEA DX BUFF2 MOV AH 9 输出 他们可以构成一个三角形 字符 INT 21H LEA DX BUFF4 MOV AH 9 输出 三角形的周长为 字符 INT 21H POP AX MOV BL 10 DIV BL 将数值转换为十进制 武汉理工大学 微机原理与接口技术 课程设计说明书 12 MOV BL AH 将 AH 的值转移到 CL 寄存器 ADD AL 30H 将 AL 的值转换为 ASC 码 MOV DL AL MOV AH 2 输出 AL 的值 INT 21H ADD BL 30H 将 AH 的值转换为 ASC 码 MOV DL BL MOV AH 2 输出 AH 的值 INT 21H 3 4 2 错误输出 3 4 2 1 程序说明 错误输出语句相对简单 在数据段对字符串进行定以后直接利用 MOV AH 9 调用功能显示完整的错误字符串 为了使程序更具有实用性 错误提醒后自动跳转回到程序输入语句提示重 新输入 3 4 2 2 程序代码 ERROR LEA DX BUFF3 MOV AH 9 输出 错误 字符 INT 21H JMP INPUT 跳转返回到输入 a b c 的程序 3 5 完整程序代码 DATA SEGMENT 武汉理工大学 微机原理与接口技术 课程设计说明书 13 BUFF1 DB 13 10 Please input the values of a b c BUFF2 DB 13 10 They can construct a triangle BUFF3 DB 13 10 ERROR BUFF4 DB 13 10 The perimeter of this triangle is DATA ENDS CODE SEGMENT ASSUME DS DATA CS CODE START MOV AX DATA MOV DS AX INPUT LEA DX BUFF1 MOV AH 9 显示 请输入 a b c 的值 字样 INT 21H MOV AH 1 输入 a 值 INT 21H CBW 将 AL 数中的符号位扩展到 AH 中得 AX MOV BX AX 将 a 的值存入 BX 中 MOV AL 20H MOV AH 2 在字母 a 的值键入后输出空格 INT 21H MOV AH 1 输入 b 的值 INT 21H CBW 将 AL 数中的符号位扩展到 AH 中得 AX MOV CX AX 将 b 的值存入 CX 中 武汉理工大学 微机原理与接口技术 课程设计说明书 14 MOV AL 20H MOV AH 2 在字母 b 的值键入后输出空格 INT 21H MOV AH 1 输入 c 的值 INT 21H CBW 将 AL 数中的符号位扩展到 AH 中得 AX MOV DX AX 防止 AX 中数据改变 MOV AH 1 输入任意字符 INT 21H CMP AL 0DH JNE INPUT 若此时输入字符不为回车则返回重新输入部分 JUDGE SUB DX 30H 将输入后 c 的 ASC 码转换为数值型 SUB BX 30H 将输入后 a 的 ASC 码转换为数值型 SUB CX 30H 将输入后 b 的 ASC 码转换为数值型 MOV AX BX 将 BX 的数值存入 AX 寄存器 ADD AX CX 计算 BX CX 的长度 CMP AX DX BX CX 的值与第三边 DX 作比较 JNG ERROR 若 BX CX DX 则跳转至 ERROR MOV AX CX 将 BX 的值送入 DX ADD AX DX 计算 DX CX 的长度 CMP AX BX DX CX 的值与第三边 BX 作比较 JNG ERROR 若 DX CX BX 则跳转至 ERROR MOV AX DX 将 AX 的值送入 DX ADD AX BX 计算 DX BX 的长度 武汉理工大学 微机原理与接口技术 课程设计说明书 15 CMP AX CX DX BX 的值与第三边 CX 作比较 JNG ERROR 若 DX BX c 则跳转至 ERROR MOV AX BX 若三边均满足条件 则计算周长 ADC AX CX 计算两边长度和 ADC AX DX DX a b c PUSH AX 将 AX 存入堆栈保护 OUTPUT LEA DX BUFF2 MOV AH 9 输出 他们可以构成一个三角形 字符 INT 21H LEA DX BUFF4 MOV AH 9 输出 三角形的周长为 字符 INT 21H POP AX MOV BL 10 DIV BL 将数值转换为十进制 MOV BL AH 将 AH 的值转移到 CL 寄存器 ADD AL 30H 将 AL 的值转换为 ASC 码 MOV DL AL MOV AH 2 输出 AL 的值 INT 21H ADD BL 30H 将 AH 的值转换为 ASC 码 武汉理工大学 微机原理与接口技术 课程设计说明书 16 MOV DL BL MOV AH 2 输出 AH 的值 INT 21H JMP OVER 跳转至结束程序 ERROR LEA DX BUFF3 MOV AH 9 输出 错误 字符 INT 21H JMP INPUT 跳转返回到输入 a b c 的程序 OVER MOV AX 4C00H INT 21H 程序结束 CODE ENDS END START 4 程序调试与运行 4 1 调试过程 利用 emu8086 软件新建空白页 输入源程序代码后汇编检测是否存在错误 若不存在错误 则程序自动运行 DOS 系统的 INT 21H 下的 09H 字功能以 为 结束符 自动结束字符串的显示 所以运行后屏幕首先显示 please input the value of a b c 随后输入三个数字 此时 AX BX CX DX 寄存器中为随 机值 武汉理工大学 微机原理与接口技术 课程设计说明书 17 图 3 程序输入界面 若不输入回车 则程序不继续运行 而跳转回到输入部分继续输入 图4 未输入回车界面 武汉理工大学 微机原理与接口技术 课程设计说明书 18 输入回车后 程序对输入数值进行检验判断 若不能构成三角形 则输出 ERROR 字样 随后程序跳转回到重新输入部分 光标闪烁 等待下一次输 入 图 5 不能构成三角形界面 若输入的数值满足构成三角形的条件 则首先输出 他们可以构成三角形 的字样 随后程序继续运行 计算 a b c 的值为构成的三角形的周长 并在 屏幕显示出它们相应的周长计算值 图 6 构成三角形并计算周长界面 单步运行时可以检测 AX BX CX DX 中数值的变化 此时 a b c 三边值分 别存于 BX CX DX 寄存器中 AX 已运算出 BX CX DX 的数值 武汉理工大学 微机原理与接口技术 课程设计说明书 19 图 7 单步运行界面 5 程序创新与改进 5 1 改进说明 等腰等边三角形判断等腰等边三角形判断 本题中只需判断输入的a b c三边是否满足 任意两边之和大于第三边的 条件 即判断是否能够成三角形 为了深化题目使之具有更高的实用性 可以 将程序在判断构成三角形的条件成立后 添加进一步判断是否为等腰三角形或 是等边三角形的条件 其中 判断等腰三角形的条件为 三边中有两边相等 这其中也包括了三 边均相等 即等边三角形的情况 利用选择结构对三边中任意两边进行三次比 武汉理工大学 微机原理与接口技术 课程设计说明书 20 较 其中一次或两次结果相等后跳转输出 此三角形为等腰三角形 的语句 当三次判断均相等时 则跳转输出 此三角形为等边三角形 的语句 修改部 分程序如下 5 2 程序代码 CMP BX CX 比较 BX CX 的大小 JNE NORMAL 若不等则跳转至 NORMAL 部分 CMP BX DX 比较 BX DX 的大小 JE T2 仍相等则输出等边三角形 JMP T1 若不相等则输出等腰三角形 NORMAL CMP BX DX 比较 BX DX 的大小 JE T1 若相等则输出等腰三角形 不相等继续 CMP CX DX 比较 CX DX 的大小 JE T1 若相等输出等腰三角形 JMP OUTPUT 不相等则直接输出能够成三角形 T1 PUSH DX 等腰三角形输出 LEA DX BUFF5 MOV AH 9 INT 21H POP DX JMP OUTPUT T2 PUSH DX 对等边三角形输出 LEA DX BUFF6 MOV AH 9 INT 21H 武汉理工大学 微机原理与接口技术 课程设计说明书 21 POP DX JMP OUTPUT 5 3 程序运行与调试 输入数字可构成等腰三角形时显示 lsosceles 字样 如图所示 图 8 等腰三角形显示 输入数字可构成等边三角形时显示 equateral 字样 如图所示 图 9 等边三角形显示 带入任意数值若干组 程序测试可行 6 心得及体会 在大一学期 我们就接触了最早的 C 语言程序编程 利用输入的编码和指 令可以设计出许多有趣的小程序和简单实用的解题方法 而在本学期所学的汇 编语言使我更加深刻的了解认识了编程的奥秘 对于 C 语言而言 汇编语言相 对晦涩生疏 但其实两者也有很多的共通之处 例如所有指令的代码都是同义 武汉理工大学 微机原理与接口技术 课程设计说明书 22 的英文名词或者它的简写 结构化程序设计中的循环结构 分支结构 顺序结 构等两者在实质上其实是完全相同的 两种编程语言的结合更让我对编程产生 了浓厚的兴趣 微机原理 是一门专业基础课程 它的主要内容包括微型计算机体系结构 8086微处理器和指令系统 汇编语言设计以及微型计算机各个组成部分介绍等 内容 要求考生对微机原理中的基本概念有较深入的了解 能够系统地掌握微 型计算机的结构 8086微处理器和指令系统 汇编语言程序设计方法 微机系 统的接口电路设计及编程方法等 并具有综合运用所学知识分析问题和解决问 题的能力 在微机原理与接口技术这门课程的实验环节中 我们学会了用程序将代码 从接口传入控制设备 从而达到利用软件间接控制硬件的作用 利用 8086cpu 中的寄存器 AX BX CX DX 来存储相关的数据进行运算 通过这此课程设计 我也深深体会到了理论和实际结合的重要性 要把平 时上课学习到的代码指令和要求规则转换到实际并不像想象中那么容易和顺利 还有一些经验性的技巧与知识是通过实际动手和思考培养积累所得的 只有从 理论知识的层面升华到解决实际问题 才算真正掌握了这门学科 在编程的过 程中 我学会了灵活运用所学知识的重要性 对于同一个目标 可以选择和利 用的编码指令有很多种 如何选择占用内存空间最小 运行速度最快的方式是 我们需要考虑和学习的优化编程思想 同样 在程序调试过程中 我也切身感 受到了思维严谨和细心耐心的良好品质 一个很小的代码错误可能会导致整个 程序的无法运行 可见编程的要求是很高的 此外 我还意识到在编程途中的格式和分段式相当重要的 分段编程可以 让我们的思路更加清晰从而大大提高我们的效率 冗长复杂的一段式代码看似 简单 实际却增加了阅读的难度 在编程途中也容易弄混出错 利用汇编 我们可以解决很多生活中的实际问题 将这些问题转换建立实 际的数学模型然后利用编程计算求解 虽然这学期的课程结束了 但对于我们 汇编语言和接口技术的知识还有很多我们从未接触 只是一门有用的学科 也 是很有用的思维方法 在今后的学习生活中 我们还要不断地自主学习 将这 门编程技术更加精通地投入日常生活的实际运用中 更加充分地发挥它的意义 武汉理工大学 微机原理与接口技术 课程设计说明书 23 和作用 7 参考文献 1 彭虎等编著 微机原理与接口技术 第二版 北京 电子工业出版社 2008 2 沈美明 温东禅 IBM PC汇编语句程序设计 第2版 北京 清华大学出 版社 2001 3 任向明 卢惠林 汇编语言程序设计实用教程 北京 清华大学出版社 2009 4 马力妮 80 x86汇编语言程序设计 北京 机械工业出版社 2004 5 曹加恒 苏光奎 许先斌 新一代汇编语言程序设计 北京 高等教育出版社 2003 武汉理工大学 微机原理与接口技术 课程设计说明书 24 附件一 题目要求源程序 DATA SEGMENT BUFF1 DB 13 10 Please input the values of a b c BUFF2 DB 13 10 They can construct a triangle BUFF3 DB 13 10 ERROR BUFF4 DB 13 10 The perimeter of this triangle is DATA ENDS CODE SEGMENT ASSUME DS DATA CS CODE START MOV AX DATA MOV DS AX INPUT LEA DX BUFF1 MOV AH 9 显示 请输入 a b c 的值 字样 INT 21H MOV AH 1 输入 a 值 INT 21H CBW 将 AL 数中的符号位扩展到 AH 中得 AX MOV BX AX 将 a 的值存入 BX 中 MOV AL 20H 武汉理工大学 微机原理与接口技术 课程设计说明书 25 MOV AH 2 在字母 a 的值键入后输出空格 INT 21H MOV AH 1 输入 b 的值 INT 21H CBW 将 AL 数中的符号位扩展到 AH 中得 AX MOV CX AX 将 b 的值存入 CX 中 MOV AL 20H MOV AH 2 在字母 b 的值键入后输出空格 INT 21H MOV AH 1 输入 c 的值 INT 21H CBW 将 AL 数中的符号位扩展到 AH 中得 AX MOV DX AX 防止 AX 中数据改变 MOV AH 1 输入任意字符 INT 21H CMP AL 0DH JNE INPUT 若此时输入字符不为回车则返回重新输入部分 JUDGE SUB DX 30H 将输入后 c 的 ASC 码转换为数值型 SUB BX 30H 将输入后 a 的 ASC 码转换为数值型 SUB CX 30H 将输入后 b 的 ASC 码转换为数值型 MOV AX BX 将 BX 的数值存入 AX 寄存器 由于之后的功 能调用需要改变 AX 的值 ADD AX CX 计算 BX CX 的长度 CMP AX DX BX CX 的值与第三边 DX 作比较 JNG ERROR 若 BX CX DX 则跳转至 ERROR 武汉理工大学 微机原理与接口技术 课程设计说明书 26 MOV AX CX 将 BX 的值送入 DX 防止加法计算后 BX 所存 储的边长改变 ADD AX DX 计算 DX CX 的长度 CMP AX BX DX CX 的值与第三边 BX 作比较 JNG ERROR 若 DX CX BX 则跳转至 ERROR MOV AX DX 将 AX 的值送入 DX 防止加法计算后 AX 所存 储的边长改变 ADD AX BX 计算 DX BX 的长度 CMP AX CX DX BX 的值与第三边 CX 作比较 JNG ERROR 若 DX BX c 则跳转至 ERROR MOV AX BX 若三边均满足条件 则计算周长 ADC AX CX 计算两边长度和 ADC AX DX DX a b c PUSH AX 由于之后涉及 AX 的功能调用 此处将 AX 存入 堆栈保护 OUTPUT LEA DX BUFF2 MOV AH 9 输出 他们可以构成一个三角形 字符 INT 21H LEA DX BUFF4 MOV AH 9 输出 三角形的周长为 字符 INT 21H POP AX MOV BL 10 武汉理工大学 微机原理与接口技术 课程设计说明书 27 DIV BL 将数值转换为十进制 MOV BL AH 将 AH 的值转移到 CL 寄存器防止功能调用时被 破坏 ADD AL 30H 将 AL 的值转换为 ASC 码 MOV DL AL MOV AH 2 输出 AL 的值 INT 21H ADD BL 30H 将 AH 的值转换为 ASC 码 MOV DL BL MOV AH 2 输出 AH 的值 INT 21H JMP OVER 跳转至结束程序 ERROR LEA DX BUFF3 MOV AH 9 输出 错误 字符 INT 21H JMP INPUT 跳转返回到输入 a b c 的程序 OVER MOV AX 4C00H INT 21H CODE ENDS END START 武汉理工大学 微机原理与接口技术 课程设计说明书 28 附件二 加入判断等腰或等边三角形的程序 DATA SEGMENT BUFF1 DB 13 10 Please input the values of a b c BUFF2 DB 13 10 They can construct a triangle BUFF3 DB 13 10 ERROR BUFF4 DB 13 10 The perimeter of this triangle is BUFF5 DB 13 10 It is a lsosceles triangle BUFF6 DB 13 10 It is an equilateral triangle DATA ENDS CODE SEGMENT ASSUME DS DATA CS CODE START MOV AX DATA MOV DS AX INPUT LEA DX BUFF1 MOV AH 9 显示 请输入 a b c 的值 字样 INT 21H MOV AH 1 输入 a 值 INT 21H CBW 将 AL 数中的符号位扩展到 AH 中得 AX 武汉理工大学 微机原理与接口技术 课程设计说明书 29 MOV BX AX 将 a 的值存入 BX 中 MOV AL 20H MOV AH 2 在字母 a 的值键入后输出空格 INT 21H MOV AH 1 输入 b 的值 INT 21H CBW 将 AL 数中的符号位扩展到 AH 中得 AX MOV CX AX 将 b 的值存入 CX 中 MOV AL 20H MOV AH 2 在字母 b 的值键入后输出空格 INT 21H MOV AH 1 输入 c 的值 INT 21H CBW 将 AL 数中的符号位扩展到 AH 中得 AX MOV DX AX 防止 AX 中数据改变 MOV AH 1 输入任意字符 INT 21H CMP AL 0DH JNE INPUT 若此时输入字符不为回车则返回重新输入部分 JUDGE SUB DX 30H 将输入后 c 的 ASC 码转换为数值型 SUB BX 30H 将输入后 a 的 ASC 码转换为数值型 SUB CX 30H 将输入后 b 的 ASC 码转换为数值型 MOV AX BX 将 BX 的数值存入 AX 寄存器 由于之后的功 能调用需要改变 AX 的值 武汉理工大学 微机原理与接口技术 课程设计说明书 30 ADD AX CX 计算 BX CX 的长度 CMP AX DX BX CX 的值与第三边 DX 作比较 JNG ERROR 若 BX
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 景区旅游产品开发与营销推广方案
- 平门小区封控通知书
- 幼儿园新生入园通知书
- 广东规划审定通知书
- 广州校园停电通知书
- 店铺员工违规处罚通知书
- 建平县房价降价通知书
- 延期交房催告通知书
- 建昌县封城文件通知书
- 弘锦物业停电通知书
- 人教版六年级数学上册第一单元测试卷(含解析)
- 压铸模具基础知识培训课件
- 风电厂冬季安全培训课件
- 2025云南昆明元朔建设发展有限公司第一批收费员招聘20人备考考试题库附答案解析
- 2025年微生物专升本习题库(含答案)
- 互联网医院在线医疗培训方案
- 国家基层高血压防治管理指南(2025版)培训项目试题有答案
- 2025秋新教材统编版(2024)八年级上册道德与法治全册教案
- 人教版小学数学123456年级教资面试试讲逐字稿155篇
- 中药汤剂煎煮法课件
- 2025北师大版三年级数学上册 第六单元 单元教学设计
评论
0/150
提交评论