当前位置:文档之家› 微机实验报告1_2

微机实验报告1_2

n DB 0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
BEG:
MOV AX,DATA
MOV DS,AX
MOV AH,0AH
MOV DX,OFFSET BUF
INT 21H
MOV AH,9
MOV DX,OFFSET CRLF
int 21h
MOV SI,OFFSET BUF
程序清单:
.486
DATA SEGMENT USE16
SUM DB ?,?,
MESG DB '25+9='
DB 0,0
N1 DB 9,F0H
N2 DW 25
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA
BEG: MOV AX,DATA
MOV DS,AX
MOV BX,OFFSET SUM
MOV AH,N1
MOV AL,N2
ADD AH,AL
MOV [BX],AH
CALL CHANG
MOV AH,9
MOV DX,OFFSET MESG
INT 21H
MOV AH,4CH
INT 21H
CHANG: PROC
LAST: CMP [BX], 10
JC NEXT
JC DISP_1
MOV DL,'0'
JMP DISP
DISP_1:
MOV DL,'1'
DISP:
INT 21H
POP AX
LOOP D_NEXT
MOV AH,4CH
INT 21H
CODE ENDS
END BEG
运行结果:
运行结果
4、实验小结
1·让我们熟悉了汇编语言编写过程,从编辑到编译再到链接最后到运行的整个过程。
Windows xp、未来汇编

3、实验原理及内容
1、【实验1.3.1】排除语法错误。
要求通过比较法完成8位二进制数转换成十进制数送屏幕显示功能的汇编语言源程序。但有很多语法错误,要求按照原样对源程序进行编辑,汇编后,根据TASM给出的错误信息对源程序进行修改,直到没有语法错误为止,然后进行链接,并执行相应的可执行文件。正确的执行结果是在屏幕上显示:25+9=34。
INC SI
MOV CL,[SI]
MOV CH,0
INC SI
LAST1:
MOV AL,[si]
CMP AL,42H
JB NO_1
CMP AL,45H
JA NO_1
INC N
NO_1:
INC SI
LOOP LAST1
MOV AL,N
MOV CX,8
D_NEXT:
ROL ?,?
MESG DB '25+9='
DB 0,0,'$'
N1 DB 9
N2 DB 25
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE , DS:DATA
BEG: MOV AX, DATA
MOV DS,AX
MOV BX,OFFSET SUM
MOV AH,N1
2、【实验2.3.3】
从BUF单元开始存有一字符串(长度<255),编程实现统计该字符串字符中的ASCII码在42H-45H之间的字符个数,并将统计结果以二进制形式显示在屏幕。
程序清单:
DATA SEGMENT
BUF DB 255
DB ?
DB 255 DUP(?)
CRLF DB 0DH,0AH,24H
XXXX
实验类型
软件
实验学时
2+2
实验时间
2015.4.17
1、实验目的和要求
1·掌握循环程序的编写以及结束循环的方法;
2·进一步学习汇编语言源程序的编辑、汇编、目标文件的链接和可执行文件的执行全过程。掌握汇编软件、TASM、TLINK和TD的使用方法;
3·掌握汇编语言的语法规则;
2、实验环境(实验设备)
2·试验中一开始找错时“:”这个错误一直没找出来。直到最后才发现是CHANG后多了
“:”。
3·此次实验让我们知道了软件在实现运行前要经过严密设计并且要经过多次测试后才行。
4·此次实验让我们真正认识了分支循环子程序设计。
五、指导教师评语
成绩
批阅人
日期
INC BYTE PTR [BX+7]
MOV AH, BYTE PTR[BX]
JMP LAST
NEXT: ADD BYTE PTR[BX+8],AH
ADD BYTE PTR[BX+7] ,30H
ADD BYTE PTR[BX+8] ,30H
RET
CHANG ENDP
CODE ENDS
END BEG
运行结果:
实验报告
(2014 /2015学年第2学期)
课程名称
微型计算机原理与接口技术
实验名称
汇编语言语法练习与分支循环子程序设计
实验时间
2015

4

17

指导单位
计算机学院
指导教师
XXX
学生姓名
XXX
班级学号
XXXXXXX
学院(系)
XXXX
专业
XXXX
实验报告
实验名称
汇编语言语法练习与分支循环子程序设计
指导教师
MOV AL,N2
ADD AH,AL
MOV [BX],AH
CALL CHANG
MOV AH,9
MOV DX,OFFSET MESG
INT 21H
MOV AH,4CH
INT 21H
CHANG PROC
LAST: CMP BYTE PTR [BX],10
JC NEXT
SUB BYTE PTR[BX],10
SUB [BX], 10
INC [BX+7]
JMP LAST
NEXT: ADD [BX+8],SUM
ADD BYTE PTR [BX+7], 30H
ADD BYTE PTR [BX+8], 30H
RET
CHANG: ENDP
CODE ENDS
END BEG
修改后程序:
.486
DATA SEGMENT USE16
相关主题