- 4
- 0
- 约3.52千字
- 约 23页
- 2022-11-02 发布于上海
- 举报
会计学
1
汇编语言实验
实验目的
1.学习及掌握汇编语言源程序的书写格式和要求。
2.学会使用EDIT、MASM、LINK、DEBUG等软件工具。
3.熟练掌握在计算机上编辑、汇编、连接及运行汇编语言程序的方法。
第1页/共23页
实验预习要求
复习8086指令系统中的各类指令及DOS功能调用。
按照题目要求在实验前编写好实验中的程序段。
第2页/共23页
实验环境
微型计算机一台
DOS或WINDOWS操作系统 MASM开发套件
第3页/共23页
实验原理
DOS功能调用
为了使用方便,将DOS层功能模块所提供的88个子程序统一顺序编号从00H到57H。DOS系统功能调用方式如:
(1)置入口参数;
(2)将子程序编号送入AH寄存器;
(3)执行中断指令:INT 21H。
第4页/共23页
1、接收单个字符的输入并显示格式:mov ah, 01h int 21h
说明:
1)执行该功能调用首先扫描键盘,等待按键。
2)若有键按下,则检查所按键码。
3)当按CTRL-BREAK键瞬时,则推出命令执行。
4)当为其它键时,则将对应ACSII码送AL寄存器,同时送显示器显示。
第5页/共23页
2、单个字符的输出这个调用将送入dl寄存器中的字符输出显示到屏幕上。
格式:mov dl, 待显示字符的ASCII码
mov ah, 02h int 21h
说明:
1)完成从标准输出设备显示器上输出显示一个字符。
2)如果DL中是CTRL-BREAK的ASCII,则从本调用的执行中退出。
第6页/共23页
3、显示字符串(9号调用)
格式:mov dx, 字符串首偏移地址
mov ah, 09h int 21h
说明:该功能调用完成在标准输出设备显示器上输出显示一字符串,字符串必须以字符“$”(24H)为结束标志。但“$”字符不显示。
第7页/共23页
4、接收字符串的输入
格式: mov dx, 缓冲区首偏移地址 mov ah, 0Ah int 21h
说明:1)该功能调用完成从键盘接收字符串存到指定内存的输入缓冲区,直到输入回车符时为止。
2)须事先在内存数据段中定义一缓冲区,其格式一般为:
Buf db 20
db ?
db 20 dup(?)
第一字节给出缓冲区能存放的字符个数;第二字节为实际键入的字符个数,从第三字节开始,存放键入的字符串,以回车键结束。如实际键入的字符数超过缓冲区容量,则超出部分将被丢失。 3)若实际输入的字符数少于定义的字节数,则缓冲区内其余字节补零。若实际输入多于定义的字节数,则多余字符丢弃,且响铃。
第8页/共23页
源程序的格式
DATA SEGMENT
BUF DB Hello, world !$
DATA ENDS
STACK SEGMENT STACK
DW 36 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
段的定义以segment开始以ends结束。
前面是段的名称,必须成对出现
变量的定义用伪指令DB、DW等。
变量名称必须符合标识符的要求。
必须在段中定义。
堆栈段后必须带上STACK标识为堆栈。
ASSUME分配段与段寄存器之间的关系。所定义的段只有分配好段后才能与相应的段对应起来。分配后代码段的段首址自动置值。数据段与附加数据段必须由用户置值。
第9页/共23页
START: MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET BUF
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
START标号是程序开始的第一条指令的符号地址,
将数据段的段首地址置入段寄存器DS中。中间必须借助字寄存器。因为DATA在这里得到的是一个立即数不能直接放入段寄存器中。
9号功能调用在屏幕上输出一串字符。
4CH功能调用,结束程序返回DOS命令行。
END语句标识程序到此为此,其后带的标号名指名程序从哪开始。
END后的其他语句不会再汇编。
第10页/共23页
实验内容
1.汇编语言源程序的建立
程序要求是:在屏幕上显示“Hello, world !”。设定源程序的文件名为ABC.
原创力文档

文档评论(0)