实验3-汇编语言程序上机过程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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号功能返回系统的方法。在自编程序中更深刻的理解每一语句的含义,为以后的学习打下牢固的基础,同时也提高了学习汇编的兴趣。

相关文档
最新文档