实验3-汇编语言程序上机过程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验3 汇编语言程序上机过程
3.1 实验目的
(1)掌握常用工具软件EDIT,MASM,和LINK的使用。
(2)伪指令:SEGMENT ,ENDS,ASSUME,END, OFFSET,DUP.
(3)利用INT 21H的1号功能实现键盘输入的方法。
(4)了解.EXE和.COM文件的区别及用INT 21H 4C号功能返回系统的方法。
3.2 实验类型
验证型实验
3.3 实验内容
data segment
message DB 'THIS IS A SAMPLE PROGRAM OF KEY AND DISPLAY'
DB 0DH, 0AH, 'PLEASE STRIKE THE KEY!', 0DH, 0AH,'$'
data ends
stack segment PARA STACK'STACK'
DB 50 DUP(?)
stack ends
code segment
assume CS:COE, DS:DATA, SS:STACK
start:
mov ax, data
mov ds, ax
mov dx, OFFSET MESSAGE
mov ah, 9
INT 21h ; add your code here
AGAIN:
MOV AH,1
INT 21H
CMP AL,61H
JE ND
CMP AL,61H
JC ND
CMP AL,74H
JA ND
AND AL,11011111B
ND: MOV DL,AL
MOV AH,2
INT 21H
JMP AGAIN
EXIT:
MOV AH,4CH
INT 21H
CODE ENDS
END START
3.5 实验报告
(1)汇编,连接及调试时产生的错误,其原因及解决办法。
(2)思考
①若在源程序中把INT 21H的‘H’省去,会产生什么现象?
答:若在源程序中把INT 21H的‘H’省去,可以生成.EXE,但是在运新生儿湿疹行时提示出错语句:
refer to the list of support interrupts
If you need to int 21h, put h suffix to 21
②把INT 21H 4CH 号功能改为INT20H,行不行?
答:不行。此两功能号对应的功能不同。INT 21H号:终止当前程序,返回调用程序。
INT 20H : 程序正常退出。
(3)写出自编的程序,并注释。
data segment ;定义数据段message DB 'THIS IS A SAMPLE PROGRAM OF KEY AND DISPLAY' ;定义message DB 0DH, 0AH, 'PLEASE STRIKE THE KEY!', 0DH, 0AH,'$' ;光标自动换行message1 DB 'TEST','$' ;定义message1 data ends
stack segment PARA STACK'STACK' ;定义堆栈段DB 50 DUP(?) ;分配50个字节空间,初值为任意值stack ends
code segment ;定义代码段assume CS:COE, DS:DATA, SS:STACK ;定义段寄存器start:
mov ax, data
mov ds, ax ;将数据段的段地址送入DS
mov dx, OFFSET message ;将message 的偏移地址送DX
mov ah, 9 ;功能号送AH
INT 21h ;执行系统功能调用,字符串输出到显示器AGAIN:
MOV AH,1 ;功能号送AH
INT 21H ; 执行系统功能调用,这里是从键盘输入CMP AL,54H ;比较AL和54H
JE NT ;若两数相等则转到NT
CMP AL,61H ;比较AL和61H
JC ND ;若AL<61H,则转到ND
CMP AL,74H ;比较AL和74H
JA ND ;若AN>74H,则转到ND
AND AL,11011111B ;AL和1011111按位相”与”,结果送AL ND: MOV DL,AL ;把AL中显示的字符送入DL MOV AH,2 ;功能号2送入AH
INT 21H ;执行系统调用功能,这里是显示字符JMP AGAIN ;执行完上一步后,跳转到AGAIN NT: MOV DX,OFFSET MESSAGE1 ;把MESSAGE1的偏移地址送DX MOV AH,9 ;功能号9送入AH
INT 21H ;执行系统调用功能,这里是显示字符串
JMP AGAIN ;执行完上一步后,跳转到AGAIN
EXIT:
MOV AH,4CH ;调用返回DOS功能
INT 21H ;返回到DOS
CODE ENDS ;结束ENDS
END START ;结束START
(5)实验体会
通过本次的上机操作,掌握常用工具软件EDIT,MASM,和LINK的使用。熟悉了伪指令:SEGMENT ,ENDS,ASSUME,END, OFFSET,DUP.知道利用INT 21H 的1号功能实现键盘输入的方法。了解.EXE和.COM文件的新生儿湿疹区别及用INT 21H 4C号功能返回系统的方法。在自编程序中更深刻的理解每一语句的含义,为以后的学习打下牢固的基础,同时也提高了学习汇编的兴趣。