辽工大计算机网络实验报告,辽工大计算机硬件实验报告.doc

2023-05-16

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

成绩

课程名称

计算机硬件基础

实验题目

综合程序设计(三)

院系

软件学院

专业

网络工程

班级

09-2

姓名

母涵予

学号

0920020214

实验日期

10-17

实验

目的

1.熟练掌握子程序的结构。

2.掌握子程序设计的思想、方法及上机调试过程。

3.熟练掌握系统功能调用的作用。

4.掌握系统功能调用的思想、方法。

实验

准备

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 segment

a db 04h

b db 05h

c db ?

d db 10h

string db "hello world","$"

data ends

code segment

assume cs:code,ds:data

start:cld

mov ax,data

mov ds,ax

call h

mov ax,seg string

mov ds,ax

mov dx,offset string

mov ah,09h

int 21h

h proc

mov al,a

mul d

add al,b

mov c,al

h endp

code 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

stop:MOV AH, 4CH

INT 21H

CSEG ENDS

END START

实验

分析

实验

分析

(续)

记录实验的调试方法和运行结果;实验数据的分析和处理;实验过程;实验中遇到的问题和解决方案。

【实验1】

(1)利用编辑成编辑器完成保存连接以及调试工作。

(2)进入DOS系统,进行调试。用反汇编命令u。进行反汇编。

(3)用d指令查看数据段的内容。

(4)使用T指令使程序运行。P命令查看运行。

(5)继续使用p命令查看结果。

(6)实验问题和解决方案

实验进行中忽视了p命令与命令的区别。就是说T是比较老实的,他可以说是按照CPU的真实运行过程来的,执行中断的入口。

如果用P命令不会跳转到中断程序的入口,然后直接就接着下一条指令执行。

【实验2】

(1)利用编辑成编辑器完成保存连接以及调试工作。

(2)进入DOS 界面用反汇编指令-u,查看指令的物理地址。

DS=13C6H,将TABLE的偏移量存入DI=0000H,跳转的物理地址为001C,有两个强制的转换,强制把数据转换为byte类型。

(3)用T 指令逐条执行,观察程序执行过程,直到程序执行完毕。

因为程序中,01在TABLE的表中,而且第一个就是,所以跳转到名为ZER的程序执行。把1放入RESULT中。

(4)查看es 段的结构,是否将01h送入。本程序,用es段代替ds,段。。

(5)实验问题和解决方案

利用反汇编指令-u查看物理地址的时候出现了BYTE PTR,以为是数据无法传递,后来查资料明白这是强制转换。

数据段实验

总结

【实验1】

1.存在的问题

想要显示HELLO WORD 时使用T指令,会执行中断,所以不会显示结果,但是p指令却可以向下执行。使用p指令。

2.实验结论

实现了压缩BCD码和非压缩BCD码之间的转换,和在DOS屏幕上的显示。

3.收获和体会

本次试验,我们用汇编语言来实现具体问题并成功的学习过程。并深刻的体会到本次实验的重要性以及动手能力在科学学习中不可或缺的重要性。

了解到了存储器之间内容的传递,体会到了运用汇编语言,编写数值计算程序的方法和步骤。

分步骤的了解到了计算机程序在各个储存器, 寄存器,之间的调度。

4.改进意见(暂无)

【实验2】

1.存在的问题

利用反汇编指令-u查看物理地址的时候出现了BYTE PTR,以为是数据无法传递,后来查资料明白这是强制转换。

2.实验结论

实现了数值的比较 REPCNZ SCASE ,逐个比较。

3.收获和体会

学会查看寄存器和存储器,学会了通过单步调试跟踪程序执行过程。掌握了利用DOS系统功能调用方法。

4.改进意见(暂无)

教师

评语

展开阅读全文

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

辽工大计算机网络实验报告,辽工大计算机硬件实验报告.doc 的相关文章

随机推荐

  • Centos的故障排除

    环境 xff1a centos 6 4 x86 64 所需工具 xff1a CentOS 6 4 x86 64 LiveDVD iso下载地址 xff1a http mirrors 163 com centos 6 4 isos 首先介绍
  • 服务器亮黄灯问题检查方法

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 找到硬盘和主板的位置 拔出主板 xff08 如图位置4块主板 xff09 xff0c 检查内存条是否松动 xff0c 建议重新插上内存 一个节点一块硬盘 xff0c 硬盘位
  • failed to open stream :HTTP request failed 解决方法

    用curl抓取 xff0c 不要用file get contents 前者比后者效率高一点 转载于 https www cnblogs com Basu p 7940167 html
  • Android通过第三方软件打开Word、Excel、PPT、PDF等文档

    近期公司有个需求 xff0c PDF格式需要在应用内打开浏览 xff0c Word Excel要求不高直接用第三方软件打开即可 xff0c 找了两种解决办法 第一 xff0c 全部在应用内打开 xff0c 可接入腾讯的TBS xff08 没
  • mariadb数据库文件的组成

    一 日志文件 1 错误日志 xff1a error log 错误日志记录msyql运行过程中所有较为严重的警告和错误信息 xff0c 以及mariadb server 每一次启动和关闭的详细信息 xff0c 事件调度运行一个事件时产生的信息
  • FTP中的授权规则

    在授权规则中 xff0c 你可以管理自己的FTP站点以怎样的方式进行访问 xff0c 比如每个进入站点的人都需要输入用户名密码 正则可以在授权规则中删除默认的配置 允许匿名用户读取 的规则 也可以在此处 xff0c 对不同的组或用户进行粒度
  • docker应用实例——httpd

    docker可以用来创建虚拟环境跑应用 xff0c 各个应用能起到隔离作用 步骤也很简单 xff0c 就是获取 下拉镜像 应用 xff0c 然后进行安装就可以了 1 搜索镜像 xff0c 比如我想虚拟一个httpd应用 xff0c 可以看到
  • curl: (1) Protocol "'http" not supported or disabled in libcurl

    Windows下安装Curl 下载的64位版本 下载后 xff0c 将以下文件复制到 D Windows 目录下 注意 xff1a 我的系统在D盘 但是使用以下命令时 xff1a curl X GET 39 http localhost 9
  • ios UILabel 字体设置 大全

    2019独角兽企业重金招聘Python工程师标准 gt gt gt code UILabel垂直居上对齐 label sizeToFit 设置文字过长时的显示格式 label lineBreakMode 61 UILineBreakMode
  • Activity关于onConfigurationChanged方法

    方法介绍 方法 xff1a public void onConfigurationChanged Configuration newConfig 场景 xff1a 当系统的 配置信息 发生改变时 xff0c 系统会调用此方法 前提是 xff
  • Ubuntu server10.4实现自动登录

    下面是网上找的方法 xff1a 注意 这里的修改要非常小心 xff0c 出来命令不能敲错之外 xff0c 一定要记得执行 chmod 43 x autologin xff0c 不然搞不好可能会导致启动不了 xff0c 我在操作的时候就因为忘
  • FTP服务器之身份验证、授权及隔离详解

    FTP 服务器之身份验证 授权及隔离 贰零壹叁年拾月国庆假期 YoloSntim 简介 Windows 中较为基本服务器功能 xff0c 提供文件上下载功能 可单服务器管理 xff0c 亦可与域集成在一起 网上有许多介绍及教程 xff0c
  • C++到底还能做什么?

    嗯 xff0c 这是一位朋友发到我邮箱里面的 xff0c 很奇怪 xff0c 发到了gmail邮箱 xff0c 而不是我常用的hotmail邮箱哈 我呢 xff0c 试着回答一下 xff0c 如果回答得不好 xff0c 叫做肖某人学艺不精
  • 年月日时的天干推算方法

    年干推算方法 公历年号计算农历年干支的方法与公式 查出公元4年为 甲子 年 故计算公式设公元后减3 xff1b 公元前减2 公元后农历年干支的计算方法 xff1a 天干计算 xff1a 公历年号的个位数 3即为天干序号 xff1b 个位为0
  • mariadb 的安装及基本配置

    mariadb 的由来 MariaDB数据库管理系统是MySQL的一个分支 xff0c 主要由开源社区在维护 xff0c 采用GPL授权许可 开发这个分支的原因之一是 xff1a 甲骨文公司收购了MySQL后 xff0c 有将MySQL闭源
  • ubuntu软件位置(安装位置, 运行文件位置, 缓存位置)

    Ubuntu软件安装位置 xff0c 一般都在 usr bin下 xff0c 个别可能会安装到 usr share和 usr local里 xff0c 一 查看软件安装的所有路径 xff1a 要知道文件都安装在哪些地方 放在哪些文件夹里 x
  • 虚拟机CentOS6.9实现命令行与图形化界面相互切换的方法以及Linux初学几个比较有意思的命令...

    下面介绍一下我当前电脑图形化界面与命令行界面切换的状态 xff1a 只能通过快捷键Ctrl 43 Alt 43 F4建立一个 dev tty4 的终端 xff08 F1 F7 皆不可用 xff09 xff0c 不能用快捷键返回图形化界面 通
  • Powershell 之压缩

    当管理的系统越来越多 xff0c 协助开发通过日志查找问题 xff0c 相信是很多运维人员在日常工作中最头疼的问题 xff0c 反复调试 xff0c 来回调取日志 xff0c 在这种情况下 xff0c 系统的日志模式也必须调整为info级别
  • 有关圆排列问题——m个相同的元素和n个不同的元素的圆排列解法。

    根据圆排列规则 xff0c 先将n 43 m个元素进行线排列有 xff08 m 43 n xff01 m 种 xff1b 又每m 43 n种线排列对应1种圆排列 xff1b 所以圆排列的种数为 xff08 m 43 n 1 xff09 xf
  • 辽工大计算机网络实验报告,辽工大计算机硬件实验报告.doc

    辽宁工程技术大学上机实验报告 成绩 优 课程名称 计算机硬件基础 实验题目 综合程序设计 三 院系 软件学院 专业 网络工程 班级 09 2 姓名 母涵予 学号 0920020214 实验日期 10 17 实验 目的 1 xff0e 熟练掌