• 励志大全
  • 名言大全
  • 成功学
  • 励志文章
  • 励志故事
  • 励志名言
  • 励志电影
  • 励志歌曲
  • 高考励志
  • 大学生励志
  • 青春励志
  • 职场励志
  • 高三励志
  • 当前位置: 工作范文网 > 励志 > 励志电影 > 正文

    计算机硬件基础实验报告3

    时间:2020-09-21 12:45:42 来源:工作范文网 本文已影响 工作范文网手机站

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

    课程名称

    计算机硬件基础

    实验题目

    综合程序设计(一)

    院系

    软件学院

    专业

    软件工程

    班级

    姓名

    学号

    实验日期

    2014-11-19

    实验

    目的

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

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

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

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

    实验

    准备

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

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

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

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

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

    6.BIOS也以中断服务程序的形式,向程序员提供系统的基本输入输出程序BIOS功能更加基本,且与操作系统无关,当DOS没有启动或不允许使用DOS功能调用时,可以使用BIOS功能调用

    实验

    进度

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

    实验

    内容

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

    程序框图

    开始

    开始

    DI、SI初始化

    调用子程序

    显示 字符串STRING内容

    结束

    源程序清单:

    DATA SEGMENT

    BCD1 DB 03H

    BCD2 DB 07H

    STRING DB 'Hello World!','$'

    DATA ENDS

    CODES SEGMENT

    ASSUME CS:CODES,DS:DATA

    START:

    MOV AX,DATA

    MOV DS,AX

    CALL CHANGE

    MOV AH,4CH

    INT 21H

    CHANGE PROC

    MOV AL,BCD2

    MOV CL,4

    SHL AL,CL

    ADD BCD1,AL

    MOV AX,SEG STRING

    MOV DS,AX

    MOV DX,OFFSET STRING

    MOV AH,09H

    INT 21H

    RET

    CHANGE ENDP

    CODES ENDS

    END START

    MOV AX,DAtA

    MOV DS,AX

    MOV SI,OFFSET TABLE

    MOV CX,20

    MOV DX,OFFSET BUFFER

    MOV AH,0AH

    INT 21H

    A: MOV Bl,[SI]

    XOR AL,Bl

    TEST AL,01H

    JE B

    INC SI

    LOOP A

    MOV AL,-1

    MOV RESULT,AL

    JMP OVER

    B: MOV AX,1

    MOV RESULT,AL

    OVER: MOV AH,4CH

    INT 21H

    CODE ENDS

    END START

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

    程序框图

    开始

    开始

    SI、DI、CX初始化

    DI-1

    D送AL

    DI+1

    AL+[DI]

    CX=0

    1送RESULT

    N

    -1送RESULT

    Y

    源程序清单:

    DATAS SEGMENT

    TABLE DB 1,2,3,5,5,6,7,8,9,10, 1, 2,5,6,8,7,4,9,3,0

    RESULT DB ?

    DATAS ENDS

    CODES SEGMENT

    ASSUME CS:CODE,ES:DATAS

    START:

    MOV AX,DATAS

    MOV ES,AX

    MOV DI,OFFSET TABLE

    CLD

    MOV AH,01H

    INT 21H

    MOV CX,20

    SUB AL,48

    REPNE SCASB

    CMP CX,0

    JG L

    MOV RESULT,-1

    JMP LAST

    L:MOV RESULT,1

    LAST:MOV AH,4CH

    INT 21H

    CODES ENDS

    END START

    实验

    分析

    【练习1】

    (1)保存运行生成exe文件

    (2)进行调试,反汇编命令U查看,DS=0770

    (3)用D指令查看数据段的内容,BCD1 =03H BCD2= 07H.

    (4)结束程序

    (5)用D指令查看数据段的内容,压缩后为73

    【练习2】

    (1)保存运行生成exe文件

    (2)进行调试,用反汇编命令U进行反汇编

    3)用D指令查看数据段的内容,20个字节型无符号数为01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20

    3)输入一个字符

    (4)结束程序

    4)用D指令查看数据段的内容,查找数字4存在在21位显示01

    实验

    总结

    【实验1】

    1.存在的问题

    HELLO WORD 在输入P后显示

    2.实验结论

    通过汇编语言,基于DOS系统完成了两个非压缩BCD改为一个压缩BCD

    3.收获和体会

    通过这次实验,掌握了DOS系统共功能调用的方法,学会了基于DOS系统完成了两个非压缩BCD改为一个压缩BCD的方法

    【实验2】

    1.存在的问题

    出现INT 21H 就以为程序结束,忽略 MOV AH 01H,以为程序出错后来发现了问题

    2.实验结论

    实现了数值比较REPNE SCASB

    3.收获和体会

    学会查看寄存器和存储器,学会了REPNE SCASB的使用,对汇编语言的了解更进一步。

    教师

    评语

    有关的专题