汇编语言实验四

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

福建农林大学金山学院实验报告

系:信息与机电工程系专业:计算机科学与技术年级: 08

姓名:游品尧学号: 082231044 实验课程:汇编语言

实验室号:___ _605 实验设备号: F5 实验时间:11.22

指导教师签字:成绩:

实验四 DOS功能调用

1.实验目的和要求

1.学会DOS中关于显示功能调用指令的用法。

2.领会修改显存方法显示字符。

2.实验环境

实验的硬件环境是:

IBM—PC机及其兼容机

实验的软件环境是:

操作系统:DOS 2.0以上;调试程序:;文本编程程序:EDIT.EXE、WPS.EXE;宏汇编程序:MASM.EXE(或ASM .EXE);连接装配程序:LINK .EXE;交叉引用程序:CREF.EXE(可有可无)。

3.实验内容及实验数据记录

1、输入一个字符,显示出来

2、输入一个字符串,显示出来

3、buf开始的3个的16位二进制数用十六进制数的形式显示出来,

(1)理解程序

(2)输入程序,汇编,运行(在DOS状态下输入:文件名.EXE),观察结果。

(3)如果要分行显示,程序要如何修改?

DATA SEGMENT

BUF DW 4F59H, 56A8H, 0FF90H

DATA ENDS

CODE SEGMENT

ASSUME CS: CODE, DS: DA TA

START: MOV AX, DA TA

MOV DS, AX

MOV SI, 0

P: MOV BX, BUF[SI]

MOV CH, 4

L: MOV CL, 4

ROL BX, CL

MOV DL, BL

AND DL, 0FH

CMP DL, 10

JB NEXT

ADD DL, 7

NEXT: ADD DL, 30H

MOV AH, 2

INT 21H

DEC CH

JNZ L

INC SI

INC SI

CMP SI, 4

JNA P

MOV AH, 4CH

INT 21H

CODE ENDS

END START

4、运行下列程序,在屏幕的第1行,会显示一个字符X,理解程序段STACK SEGMENT

DB 128 DUP(0)

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,SS:STACK

START: MOV AX,STACK

MOV SS,AX

MOV SP,128

MOV AX,0B800H

MOV ES,AX

MOV AH,0 ;BIOS 10H的0号功能,设置80X25的彩色字符模式

MOV AL,03H

INT 10H

MOV AH,'X'

MOV ES:[160*1+40*2],AH

MOV AL,0

MOV AH,4CH

INT 21H

CODE ENDS

END START

5、显示

*********

*******

*****

***

*

6、编写程序,统计字缓冲区中的20个数据的正数、负数、0的个数,并将

统计结果以16进制形式显示出来。

4.算法描述及实验步骤

1.输入一个字符,显示出来。

DA TA SEGMENT

STRING DB '--------',13,10,'$'

HUAN DB 13,10,'$'

DA TA ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DA TA

START: MOV AX,DA TA

MOV DS,AX

----------------------------------------------------------------------------------------------------------------- MOV AH, 1

INT 21H 输入字符;

MOV BL,AL 将输入的字符放在BL 中;

LEA DX,HUAN

MOV AH,9

INT 21H 换行;

LEA DX,STRING

MOV AH,9

INT 21H 加上一个‘----------------‘间隔;

MOV AH,2

MOV DL,BL

INT 21H 显示之前输入的字符;

----------------------------------------------------------------------------------------------------------------- MOV AH,4CH

INT 21H

CODES ENDS

END START

2.输入一个字符串,显示出来。

STACKS SEGMENT STACK

DB 200 DUP(?)

STACKS ENDS

DA TAS SEGMENT

STR DB"please input a string:$"

BUF DB 30

DB ?

DB 30 DUP (?)

CRLF DB 0AH,0DH,"$"

相关文档
最新文档