辽宁工业大学计算机硬件知识,辽工大计算机硬件实验报告.doc

本实验报告详细介绍了使用8086/8088汇编语言进行程序设计的过程,包括子程序的设计与调用、DOS与BIOS中断调用等关键知识点。通过实际案例演示了如何实现BCD码转换、字符输入输出等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--(完美WORD文档DOC格式,可在线免费浏览全文和下载)值得下载!

辽宁工程技术大学上机实验报告

成绩优

课程名称计算机硬件基础实验题目综合程序设计(三)院系软件学院专业网络工程班级09-2姓名母涵予学号0920020214实验日期10-17实验

目的1.熟练掌握2.掌握熟练掌握掌握实验

准备1.8086/8088汇编语言指令及伪指令的用法

2.子程序设计的思想和方法

(1)子程序是功能相对独立的程序段,它可以实现源程序的模块化,简化源程序结构,提高编程效率

(2)子程序定义:利用过程伪指令PROC和ENDP,格式如下:

过程名PROC [NEAR|FAR]

……;过程体

过程名ENDP

其中:可选的参数指定过程的调用属性。没有指定过程属性,则采用默认属性NEAR。

NEAR属性:段内近调用,子程序只能被相同代码段的其他程序调用

FAR属性:段间远调用,子程序可以被相同或不同代码段的程序调用

(3)主程序(调用程序)调用子程序(被调用程序):利用CALL指令

(4)子程序返回主程序:利用RET指令

(5)保护现场:子程序开始处应该保护子程序中使用的寄存器(通常利用堆栈),子程序返回前相应进行恢复。

(6)子程序中对堆栈的压入和弹出操作通常成对使用,以保持堆栈的平衡。

(7)子程序允许嵌套和递归

(8)处理好子程序与主程序之间的参数传递问题:利用寄存器、内存缓冲区及堆栈。

3.DOS和BIOS中断调用是机器及操作系统提供的中断调用功能

4.系统功能调用的步骤:

⑴ 在AH寄存器中设置系统功能调用号

⑵ 在指定寄存器中设置入口参数

⑶ 用中断调用指令(INT i8)执行功能调用

⑷ 根据出口参数分析功能调用执行情况

5.DOS利用21H号中断提供给用户近百个系统功能,主要包括设备管理、目录管理和文件管理三个方面的功能

(1)输入一个字符,01H号功能调用

(2)输出一个字符,02H号功能调用

(3)输入一个字符串,0AH号功能调用

(4)输出一个字符串,09H号功能调用

注意它们的入口参数及出口参数

6.BIOS也以中断服务程序的形式,向程序员提供系统的基本输入输出程序

BIOS功能更加基本,且与操作系统无关,当DOS没有启动或不允许使用DOS功能调用时,可以使用BIOS功能调用

(1)键盘I/O中断调用——INT 16H

(2)显示器输入中断调用——INT 10H

实验

进度本次共有 2 个练习,完成 2 个。

实验

内容

实验

内容

(续)

包含本次实验项目要完成的实验内容、实验原理、实验步骤或过程;对原始实验数据记录要详实。

1 .编写主程序调用一个过程,实现将两个非压缩BCD码转换为一个压缩BCD码,并用字符显示功能和字符串显示功能完成在屏幕上显示一个字符串“Hello World!”的功能。

(1)实现方法

(2)程序代码

data?segmenta?db?04hb?db?05hc?db??d?db?10hstring?db?"hello?world","$"data?endscode?segmentassume?cs:code,ds:datastart:cldmov?ax,datamov?ds,axcall?hmov?ax,seg?stringmov?ds,axmov?dx,offset?stringmov?ah,09hint?21hh?procmov?al,amul?dadd?al,bmov?c,alh?endpcode?end

send start

2.在内存建立一个表TABLE,其中存放20个字节型无符号数,从键盘输入一个数X(一位数),查找该数X在TABLE中是否存在,若存在,则在RESULT单元存入1,否则存入-1。

(1)实现方法 定义一个table表 ,存有20个字节数。利用repne scasb比较01 是否在table中,利用CX 存放字符串长度,al中01在我所编写的程序中,在result中存入1.

(2)程序代码

data segment

table db 01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20

result db ?

data ends

cseg segment

assume cs:cseg,es:data

start:cld

MOV AX, Data

MOV es, AX

LEA di, table

mov cx,20

mov ah,01h

int 21h

mov al,0fh

repne scasb

jz zer

mov result,-1

jmp stop

zer:mov result,1

s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值