- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8086 汇编语言分支程序设计
PAGE
PAGE 7
汇编语言程序设计实验报告
学院:计算机科学与技术 专业:计算机科学与技术 班级:计科131
姓名学号实验组实验时间指导教师肖敏成绩实验项目名称实验三: 8086 汇编语言分支程序设计实验目的熟悉分支程序的调试方法。实验原理对汇编源程序进行汇编、链接,在Debug环境下完成调试和运行。实验内容编写一个程序,显示AL 寄存器中的两位十六进制数实验环境1. 硬件:微型计算机1台
2. 软件:MASM软件实验步骤实验一:编程实现在显示器上输出AL 中的内容:
1.源程序如下所示,编辑下面的源程序到文件three.asm 中:
CODE SEGMENT
ASSUME CS:CODE
START: MOV AL,3EH ;此处假设为3EH
MOV BL,AL
MOV DL,AL
MOV CL,4
SHR DL,CL
CMP DL,9
JBE NEXT1
ADD DL,7
NEXT1: ADD DL,30H
MOV AH,2
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 ;返回DOS
END START
使用相应的文本编辑器建立文件three.asm,内容如上所示。
2.生成可执行文件:
1.汇编:
C:\masm masm three;
2.连接:
C:\masm link three;
3.运行及调试:
1. 运行:
C:\masmdebug three.exe
-U0 ;通过反汇编查找程序的断点
-T=0 2 ;加载数据段
-D0 ;查看原始数据是否正确
-G=0 XX ;运行程序至断点XX 处
-R ;查看程序运行结果
以上命令执行的细节可参照实验二中的说明。
4.调试:
修改AL 的内容,判断此程序是否能正确显示其中的内容的方法。
例:修改AL 内容为9AH:
-L ;重新加载可执行文件
-A0 ;重新修改MOV AL,3EH 指令
361E:0000 MOV AL,9A
361E:0002
-G=0 xx;带断点运行
-R ;查看程序运行结果
实验二:编写一个数据区移动程序,要考虑源数据区与目的数据区有重叠的情况。
1.源程序如下所示,编辑下面的源程序到文件lab.asm 中:
使用相应的文本编辑器建立文件lab.asm,内容如上所示。
2.生成可执行文件:
1.汇编:
C:\masm masm lab;
2.连接:
C:\masm link lab;
3.运行及调试:
1. 运行:
C:\masmdebug lab.exe
-U0 ;通过反汇编查找程序的断点
-T=0 2 ;加载数据段
-D0 ;查看原始数据是否正确
-G=0 XX ;运行程序至断点XX 处
-R ;查看程序运行结果
实验三:编程完成一个字符串的统计,要求分别统计出字母、数字、其它字符的个数。
1.源程序如下所示,编辑下面的源程序到文件lab1.asm 中:
DATA SEGMENT
NUMBER DB 0
CHAR DB 0
REST DB 0
STR1 DBNUMBER:,$
STR2 DBCHAR:,$
STR3 DBREST:,$
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
AGAIN:
MOV AH,1
INT 21H
CMP AL,0DH
JZ EXIT
CMP AL,0
JNL NEXT1
INC REST
JMP AGAIN
NEXT1:
CMP AL,9
JBE N1
CMP AL,65
JNL NEXT2
INC REST
JMP AGAIN
NEXT2:
CMP AL,90
JBE N2
CMP AL,97
JNL NEXT3
INC REST
JMP AGAIN
NEXT3:
CMP AL,122
JBE N2
JMP AGAIN
N1:
INC NUMBER
JMP NUMBER
JMP AGAIN
N2:
INC CHAR
JMP AGAIN
EXIT:
LEA DX,STR1
MOV AH,09H
INT 21H
MOV DL,NUMBER
ADD DL,30H
文档评论(0)