8086汇编语言程序设计 微机实验报告
更新时间:2023-09-16 03:49:01 阅读量: 高中教育 文档下载
微 机 实 验 报 告
微机实验报告
第一部分:8086汇编语言程序设计
一、实验目的
通过上机练习,初步掌握8086的指令系统,熟悉8086汇编语言程序的编写格式,学会编写简单的汇编语言应用程序,初步学会使用DEBUG调试工具。
二、实验题目
(一)编程实现从字符串中查找特定的字符,记录特定字符的个数,并将结果在屏幕上显示,同时退出并返回DOS。(要求字符串从键盘上输入)
1、流程图
- 1 -
微 机 实 验 报 告
2、实验程序及注释 DATA SEGMENT
BUFSIZE DB 20 ;数据段
ACTCHAR DB ? ;定义字符串
CHARTEXT DB 20 DUP(?) ;给输入字符分配内存 DB '$'
CNT DB 0 ;给计数器分配内存 STRING1 DB 'PLEASE INPUT THE STRING:','$'
STRING2 DB 0AH,0DH,'INPUT THE WORD YOU WANT TO CHECK:','$' STRING3 DB 0AH,0DH,'THE NUMBER OF THE WORD IS:','$' DATA ENDS ;数据段结束 COSEG SEGMENT ;代码段 ASSUME CS:COSEG,DS:DATA START: MOV AX,DATA MOV DS,AX
MOV DX,OFFSET STRING1 ;显示提示语:请输入字符串 MOV AH,09H ;输出字符串STRING1 INT 21H
MOV DX,OFFSET BUFSIZE ;从键盘输入字符串存入BUFSIZE MOV AH,0AH ;并送显 INT 21H
MOV DX,OFFSET STRING2 ;显示提示语:想查询的字符是 MOV AH,09H ;输出字符串STRING2 INT 21H
MOV AH,01H ;从键盘上输入字符到AL中并送显 INT 21H
MOV BX,OFFSET CHARTEXT ;将字符串首地址存入BX MOV CL,ACTCHAR ;置循环次数CX=字符串长度 XOR CH,CH
LP1: CMP AL, [BX] ;字符串从头开始与键入字符AL比较 JZ LP2 ;相等则转入LP2
INC BX ;指针指向字符串下一个字符 DEC CX ;循环次数减一 JNZ LP1 ;若还有未比较的字符,继续循环LP1 JMP FINI ;若全部比较完毕,跳转FINI LP2: INC CNT ;计数器增一
INC BX ;指针指向字符串下一个字符 DEC CX ;循环次数减一
JNZ LP1 ;若还有未比较的字符,跳至LP1 FINI: MOV DX,OFFSET STRING3 ;显示提示语:所查询的字符个数: MOV AH,09H INT 21H
MOV AL,CNT ;将计数器的值送AL
AAM ;将此值转换成非压缩BCD码
- 2 -
微 机 实 验 报 告
ADD AH,30H ;将BCD码转换为ASCⅡ码 MOV DL,AH ;高位送显 MOV AH,02H INT 21H
MOV AL,CNT ;再将计数器的值送AL AAM
ADD AL,30H ;将BCD码转换为ASCⅡ码 MOV DL,AL ;低位送显 MOV AH,02H INT 21H
MOV AH,4CH ;结束 INT 21H
COSEG ENDS ;代码段结束 END START ;程序结束
3、运行结果
PLEASE INPUT THE STRING(先输入字符串):ASDFAAD↙
INPUT THE WORD YOU WANT TO CHECK(输入待查找字符): A↙ THE NUMBER OF THE WORD IS(数量为):3↙
PLEASE INPUT THE STRING(先输入字符串):ASDFAAD↙
INPUT THE WORD YOU WANT TO CHECK(输入待查找字符):9↙ THE NUMBER OF THE WORD IS(数量为):0↙
PLEASE INPUT THE STRING(先输入字符串):ASDFAAD↙
INPUT THE WORD YOU WANT TO CHECK(输入待查找字符): S↙ THE NUMBER OF THE WORD IS(数量为):1↙
4、程序改进
1循环次数的改进 ○
原来的程序:MOV CX,19
改进原因:此程序表明无论输入的字符串多长,即使没有达到限定的最大字符
串的长度,也要循环19次。
改进后的程序:MOV CL,ACTCHAR
XOR CH,CH
改进结果:ACTCHAR即所输入的字符串的实际长度,因此,实际为置循环次
数CX=字符串长度,这样可以提高运行速度
2删除多余语句 ○
原来的程序:
LP1: CMP AL,[BX] ;将字符与字符串逐个比较 JZ LP2 ;相等则转入LP2
INC BX ;指针指向字符串下一个字符 DEC CX ;循环次数减一
CMP CX,0000H ;若还有未比较的字符
- 3 -
微 机 实 验 报 告
JNZ LP1 ;继续循环LP1
JMP FINI ;若全部比较完毕,跳转FINI LP2: INC CNT ;计数器增一
INC BX ;指针指向字符串下一个字符 DEC CX ;循环次数减一
CMP CX,0000H ;若还有未比较的字符 JNZ LP1 ;跳转LP1
改进原因:DEC为自减一,若减为0,它会自动影响其标志位ZF,所以不用把
CX再与00H比较,判断CX是否为零。
改进后的程序:(删除CMP CX,0000H) LP1: CMP AL, [BX] ;字符串从头开始与键入字符AL比较 JZ LP2 ;相等则转入LP2
INC BX ;指针指向字符串下一个字符 DEC CX ;循环次数减一 JNZ LP1 ;若还有未比较的字符,继续循环LP1 JMP FINI ;若全部比较完毕,跳转FINI LP2: INC CNT ;计数器增一
INC BX ;指针指向字符串下一个字符 DEC CX ;循环次数减一
JNZ LP1 ;若还有未比较的字符,跳至LP1
(二)编程实现把键盘输入的两位BCD码,在屏幕上用16进制数显示出来。 1 流程图 初始化
键入字符
判断是否在0到9之间
转化为十进制数
除以16
将整数部分和余数部分转化为ASIIC码,并送显
返回DOS
2、实验程序及注释 CODE SEGMENT ASSUME CS:CODE
START: CALL DECIBIN ;调用十进制转二进制子程序 CALL CRLF ;调用添加回、换行符子程序
CALL BINIHER ;调用二进制转十六进制并显示子程序 CALL CRLF ;调用添加回、换行符子程序
- 4 -
微 机 实 验 报 告
MOV AH,4CH INT 21H DECIBIN PROC
MOV BX,0 ;BX清零
MOV CL,2 ;限定输入两位BCD码
NEW: MOV AH,1 ;DOS调用,键入字符并回显 INT 21H
SUB AL,30H ;比较键入字符是否在0到9之间
JL NEW1 ;小于零,即不在范围内,就跳到NEW1 CMP AL,9
JG NEW1 CBW XCHG AX,BX MOV CX,10 MUL CX XCHG AX,BX ADD BX,AX POP CX DEC CL JNC NEW
RET NEW1: PUSH CX MOV AH,3 INT 10H MOV AH,2 DEC DL INT 10H POP CX JMP NEW
DECIBIN ENDP BINIHER PROC
MOV CH,4 RORATE: MOV CL,4 ROL BX,CL MOV AL,BL AND AL,0FH ADD AL,30H CMP AL,3AH
JL NEXT ADD AL,7H
NEXT: MOV DL,AL MOV AH,2 INT 21H
DEC CH ;左>右则转移
;将一个字节转化为字
;交换两个寄存器之间的内容 ;十进制数10入CX
表达式的值与AX内容相乘,并将结果存于AX ;返回到原来调用指令的下一条指令
;NEW1为固定光标程序,直到输入0-9 数字,光标才会移动 ;记录转换后的十六进制位数
;利用CL当计数器,记录寄存器数位移动次数 ;循环左移四位,相当于除以16 ;把BX低八位BL内数据转移至al ;高四位清零 ;AL小于等于3AH转移 ;把ASCII码装入DL ;DOS调用,显示字符 ;CH减一,减到零时,零标志置1
- 5 -
;
正在阅读:
8086汇编语言程序设计 微机实验报告09-16
新视野大学英语第三版读写教程第二册Unit3课文及翻译09-08
香港中文大学校长毕业典礼讲话11-27
09通信技术电路试题A评分标准08-27
国学进校园专题活动(试题)(80)03-15
华为统一通信产品渠道售前培训08-18
2021年经济开发某某市xx区生态建设工作总结报告08-03
黑白装饰画的美感-教案04-08
关于图画问题研究的一些思考03-18
- 上海大众、一汽大众、东风日产车型与VIN代号对照表
- 第2章服装原型及原型制作
- 江苏省工商行政管理系统经济户口管理办法及四项制度
- 纪检监察业务知识试题2
- 传感器综合题答案
- 北京第二外国语学院翻硕招生人数及学费
- 初三新编英语教材下册
- 公司庆中秋、迎国庆联欢会客串词
- 向区委常委会汇报安全生产工作材料
- 2006年GCT英语模拟试题(三)及答案解析
- 经济法概念的早期使用
- 我爱做家务课堂教学设计
- 学校安全工作月报表、消防安全排查表、消防隐患排查台账
- 成本会计毕业论文
- 班级文化建设论文
- 2018年天津市高考文科试题与答案汇总(Word版) - 图文
- 铁路论文
- 2017年嵌入式系统设计师考试时间及地点
- 1.111--灾害与突发公共卫生事件应急预案
- 起爆点主图 注意买入 拉升 逃顶源码指标通达信指标公式源码
- 汇编语言
- 微机
- 程序设计
- 实验
- 报告
- 8086
- 免疫组化方法中关键环节及其原理解述
- 辽宁中考几何变换练习题
- 道岔病害的预防与整治
- 北京中医药大学-远程教育-无机化学第一次作业
- 近年来国内外社会共识问题研究综述
- 南方测绘CNSS静态测量
- 下穿燃气管线安全专项施工方案
- 苏衍岭、吕楠楠等犯虚开增值税专用发票、用于骗取出口退税、抵扣
- 浙江省会考高考语文古文知识:文天祥《指南录后序》教案及知识点整理(教师版)
- 新课程背景下初中语文课堂教学中对学生语言表达能力培养论文
- 人机交互技术Web界面设计 - 图文
- 电子商务系统规划与设计实验指导书2
- 巨灾风险证券化
- 高中数学《不等关系与不等式》同步练习3 新人教A版必修5
- Cultural Awareness文化意识双语翻译外研社教材
- (最新版)国际金融危机对俄罗斯进出口贸易的影响毕业设计
- 辛亥革命论文
- 语法分析
- 无穷级数与拉普拉斯变换
- 应用文写作练习题