实验二 分支程序实验和循环程序实验
来源:互联网 发布:无限网络 封优酷 编辑:程序博客网 时间:2024/05/16 05:23
上篇
显示AL中两位十六进制数程序
流程图
CODE SEGMENT ;定义代码段 ASSUME CS:CODE ;伪指令ASSUME将段CODE与段寄存器CS联系起来START: MOV AL,3EH ;定义程序的入口,把想要显示的数字移入AL寄存器 MOV BL,AL ;将AL暂存在BL中,因为之后要改变AH中的内容 MOV DL,AL ;DL用于显示字符 MOV CL,4 ;CL在位移指令中作位移次数计数器用 这里位移次数为4 SHR DL,CL ;SHR指令将DL顺序CL寄存器指定的位数,把低位移出 CMP DL,9 ;将DL与9比较,如果小于等于9,则本身加30H即为对应的ASCII 码 JBE NEXT1 ;如果小于等于则跳转到NEXT1 ADD DL,7 ;如果大于9,本身加37H即为对应的ASCII 码NEXT1: ADD DL,30H ; MOV AH,2 ;输出DL寄存器的字符到显示器 INT 21H ;显示高位ASCII码 MOV DL,BL ; AND DL,0FH ;将高位置零 CMP DL,9 ; JBE NEXT2 ; ADD DL,7 ;NEXT2: ADD DL,30H ; MOV AH,2 ; INT 21H ;显示低位ASCII码 MOV AH,4CH ; INT 21H ;CODE ENDS ;返回DOSEND START
下篇 循环程序实验
编写一个程序,判别键盘上输入的字符;若是1-9字符,则显示之;若为A-Z或a-z字符,均显示'c';若是回车字符(其ASCII码为0DH),则自动结束程序,若为其它字符则不显示,循环等待新的字符输入。
流程图
CODE SEGMENT ASSUME CS:CODESTART: MOV AH,1 ;等待输入字符 INT 21H MOV BL,AL CMP BL,0DH JE S ;如果是回车则结束程序 CMP BL,'1' JB START ;如果是其他字符则等待继续输入 CMP BL,'9' JBE NEXT2 ;如果是1-9则输出c CMP BL,'A' JB START ;如果是其他字符则等待继续输入 CMP BL,'Z' JBE NEXT2 ;如果是A-Z则输出c CMP BL,'a' JB START ;如果是其他字符则等待继续输入 CMP BL,'z' JBE NEXT2 ;如果是a-z则输出c JMP START ;如果是其他字符则等待继续输入NEXT2: MOV DL,63H ;显示c MOV AH,2 INT 21H S: MOV AH,4CH ;返回dos INT 21HCODE ENDSEND START
测试
心得
发现 CMP BL,0DH 后必须要加H
在做实验时总是犯一些语法错误,比如总是把CMP BL,'z'
写成CMP 'z'
先画好流程图的话写起来比较快,容易发现错误逻辑上的错误
0 0
- 实验二 分支程序实验和循环程序实验
- 汇编语言简单小程序——分支、循环和排序程序设计实验
- 实验记录二 示例程序
- 第十四周实验报告二(用循环控制语句编写程序 学生人数和成绩)
- 实验2 分支循环程序设计
- 北邮微机原理 实验二 分支,循环程序设计
- C++实验二+简单程序的编写
- 实验二:命令行菜单小程序
- 实验7 程序优化
- 实验: 程序自删除
- 我的实验程序
- 实验程序1
- 串操作程序实验
- Java程序实验1
- python简单实验程序
- 数据挖掘实验报告-决策树程序实验
- 实验02:《创建程序框架》实验指导书
- 实验二 阶乘while循环
- jdbc连接各种数据库的方法
- uva1583 Digit Generator && uva1584 Circular Sequence(水)
- 希尔排序算法
- 【腾讯校招在线考试附加题】将一个10进制数转换为四位定长的36进制数
- SSH Secure File Transfer上传文件错误:encountered 1 errors during the transfer解决办法
- 实验二 分支程序实验和循环程序实验
- android 在eclipse中使用RecyclerView
- java path classpath JAVA_HOME
- 2016/3/14 开始自己的编程之路
- java实现走迷宫
- 统计难题
- LeetCode题解-6. ZigZag Conversion
- 关于代理、通知和KVO区别
- Valid Parentheses