同济大二下-计算机硬件实验报告

时间:2024.5.4

计算机硬件技术基础实验报告

实验日期:20##年4月20日

准备实验

实验目的:初步了解实验所用环境

实验仪器:pc机一台

实验步骤:编写程序如

SSTACK SEGMENT STACK

       DW 32 DUP(?)

SSTACK ENDS

CODE SEGMENT

     ASSUME CS:CODE,SS:SSTACK

START: PUSH DS

       XOR AX,AX

       MOV DS,AX

       MOV SI,3000H

       MOV CX,16

AA1:   MOV [SI],AL

       INC SI

       INC AL

       LOOP AA1

AA2:  JMP AA2

CODE   ENDS

       END START  

实验现象:编译,连接,加载后没有报错。

实验一

实验名称:电子发声设计实验

实验目的:1、学习使用8254定时/计数器使蜂鸣器发声的编程方法。

实验仪器:PC机一台、TD-PITC实验装置一套

实验内容:根据实验提供的音乐频率表和时间表,编写程序控制8254,使其输出连接到扬声器上能发出相应的乐曲。

实验步骤:1按参考图示连接实验线路;

2编写实验程序,经翻译,连接无误后装入系统。

程序如下:

IOY0 EQU 06C0H

MY8254_COUNT0 EQU IOY0+00H;

MY8254_COUNT1 EQU IOY0+02H;

MY8254_COUNT2 EQU IOY0+04H;

MY8254_MODE EQU IOY0+06H;

STACK1 SEGMENT STACK

DW 256 DUP(?)

STACK1 ENDS

DATA SEGMENT

FREQ_LIST DW 371,495,495,495,624,556,495,556,624    ;频率表

DW 495,495,624,742,833,833,833,742,624

DW 624,495,556,495,556,624,495,416,416,371

DW 495,833,742,624,624,495,556,495,556,833

DW 742,624,624,742,833,990,742,624,624,495

DW 556,495,556,624,495,416,416,371,495,0

TIME_LIST DB 4,6,2,4,4,6,2,4,4                       ;时间表

DB 6,2,4,4,12,1,3,6,2

DB 4,4,6,2,4,4,6,2,4,4

DB 12,4,6,2,4,4,6,2,4,4

DB 6,2,4,4,12,4,6,2,4,4

DB 6,2,4,4,6,2,4,4,12

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

MOV DS,AX

MOV DX,MY8254_MODE

MOV AL,36H

OUT DX,AL

BEGIN: MOV SI,OFFSET FREQ_LIST

MOV DI,OFFSET TIME_LIST

PLAY:MOV DX,0FH

MOV AX,4240H

DIV WORD PTR[SI]

MOV DX,MY8254_COUNT0

OUT DX,AL

MOV AL,AH

OUT DX,AL

MOV DL,[DI]

CALL DALLY

ADD SI,2

INC DI

CMP WORD PTR[SI],0

JE BEGIN

JMP PLAY

DALLY PROC

D0:MOV CX,0010H

D1:MOV AX,0F00H

D2:DEC AX

JNZ D2

LOOP D1

DEC DL

JNZ D0

RET

DALLY ENDP

CODE ENDS

END START

3运行程序,听扬声器发出的音乐是否正确。

4更改程序,再次运行。

更改部分的音乐:

DATA     SEGMENT

FREQ_LIST  DW  262,262,393,393,441,441,393,350,350     ;频率表

           DW  330,330,294,294,262,393,393,350,350

             DW  330,330,294,393,393,350,350,330,330

             DW  294,262,262,393,393,441,441,393,350

             DW  350,330,330,294,294,262,262,262,393

           DW  393,441,441,393,350,350,330,330,294,0          

TIME_LIST DB    2,  2,  2,  2,  2,  2,  8,  2,  2      ;时间表

             DB    2,  2,  2,  2, 8,  2,  2,  2,  2

             DB    2,  2,  8,  2,  2,  2,  2,  2,  2

             DB   8,  2,  2,  2,  2,  2,  2,  8,  2

           DB    2,  2,  2,  2, 2,  8,  2,  2,  2

             DB    2,  2,  2,  8,  2,  2,  2,  2,  2

DATA     ENDS

实验现象:首先听到了“友谊地久天长“这首歌,音符较为准确

          更改程序后,音符有所变化,运行较好。

实验二

实验名称:点阵LED显示设计实验

实验目的:1了解LED点阵的基本结构

2学习LED点阵扫描显示程序的设计方法。

实验设备:PC机一台、TD-PITC实验装置一套

实验内容:编写程序,控制点阵向上卷动显示“同济大学”。

实验步骤:1按图示连接实验电路图;

2使用字符提取软件得到“”的编码,将该字库文件修改后写入程序中,保存为“HZDOT.ASM”,编写式样程序,检查无误后,便意,连接并装入系统;

程序如下:

ROW1 EQU 0600H

ROW2 EQU 0640H

COL1 EQU 0680H

COL2 EQU 06C0H

STACK1 SEGMENT STACK

DW 256 DUP(?)

STACK1 ENDS

DATA SEGMENT

HZDOT:

;同   CCDAC

DB 000H,000H,07FH,0FCH,040H,004H,040H,004H

DB 05FH,0F4H,040H,004H,040H,004H,04FH,0E4H

DB 048H,024H,048H,024H,048H,024H,04FH,0E4H

DB 048H,024H,040H,004H,040H,014H,040H,008H

;济   CBCC3

DB 040H,080H,020H,040H,027H,0FEH,001H,010H

DB 088H,0A0H,048H,040H,051H,0B0H,016H,00EH

DB 011H,010H,021H,010H,0E1H,010H,021H,010H

DB 022H,010H,022H,010H,024H,010H,028H,010H

;大   CB4F3

DB 001H,000H,001H,000H,001H,000H,001H,000H

DB 001H,000H,0FFH,0FEH,001H,000H,002H,080H

DB 002H,080H,002H,040H,004H,040H,004H,020H

DB 008H,010H,010H,018H,020H,00EH,040H,004H

;学   CD1A7

DB 001H,008H,010H,08CH,00CH,0C8H,008H,090H

DB 07FH,0FEH,040H,004H,08FH,0E8H,000H,040H

DB 000H,080H,07FH,0FEH,000H,080H,000H,080H

DB 000H,080H,000H,080H,002H,080H,001H,000H

DATA    ENDS             

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

MOV DS,AX

MOV DX,ROW1

MOV AL,00H

OUT DX,AL

MOV DX,ROW2

OUT DX,AL

MOV AL,0ffH

MOV DX,COL1

OUT DX,AL

MOV DX,COL2

OUT DX,AL

BG0:MOV AX,160

MOV SI,OFFSET HZDOT

BG1:CALL DISP

ADD SI,2

DEC AX

JZ BG0

JMP BG1

DISP:MOV CX,000FH

PUSH AX

ML0:PUSH CX

MOV BL,01H

MOV CX,0008H

ML1:MOV DX,ROW1

MOV AL,00H

OUT DX,AL

MOV AL,[SI]

NOT AL

MOV DX,COL1;

OUT DX,AL

INC SI

MOV AL,[SI]

NOT AL

MOV DX,COL2;

OUT DX,AL

INC SI

MOV DX,ROW1;

MOV AL,BL

OUT DX,AL

ROL BL,1

CALL DELAY

LOOP ML1

MOV DX,ROW1

MOV AL,00H

OUT DX,AL

MOV CX,0008H

ML2:MOV DX,ROW2;

MOV AL,00H

OUT DX,AL

MOV AL,[SI]

NOT AL

MOV DX,COL1;

OUT DX,AL

MOV AL,[SI]

NOT AL

MOV DX,COL1;

OUT DX,AL

INC SI

MOV AL,[SI]

NOT AL

MOV DX,COL2;

OUT DX,AL

INC SI

MOV DX,ROW2;

MOV AL,BL

OUT DX,AL

ROL BL,1

CALL DELAY

LOOP ML2

MOV DX,ROW2

MOV AL,00H

OUT DX,AL

SUB SI,32

POP CX

LOOP ML0

POP AX

RET

DELAY:PUSH CX;

MOV CX,0100H

DL1:PUSH AX

POP AX

LOOP DL1

POP CX

RET

CODE ENDS

END START

3运行实验程序,观察点阵的显示,验证程序功能;

实验三

实验名称:步进电机实验

实验目的:掌握步进电机的控制方法,了解80X86微处理器在控制领域的实际应用。

实验仪器:PC机一台、TD-PITC实验装置一套

实验步骤:1按图示连接线路;

          2编写实验程序,编译,连接后装入系统;

程序如下:

SSTACK SEGMENT STACK

DW 256 DUP(?)

SSTACK ENDS

DATA SEGMENT

TABDT DB 01H,03H,02H,06H,04H,0CH,08H,09H

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

MOV DS,AX

MAIN:MOV Al,90H;

MOV DX,0606H

OUT DX,AL

A1:MOV BX,OFFSET TABDT

MOV CX,0008H

A2:MOV AL,[BX]

MOV DX,0602H;

OUT DX,AL

CALL DALLY;

INC BX

LOOP A2

JMP A1

DALLY:PUSH CX

MOV CX,800H

A3:PUSH AX

POP AX

LOOP A3

POP CX

RET

CODE ENDS

END START

          3运行程序,观察实验现象;

          4 改变电机的转速。汇编语言如下:

MAIN:  MOV AL, 90H                    

              MOV DX, 0606H             

              OUT DX, AL

A1:         MOV BX, OFFSET TABDT

        MOV CX, 0100H                               

A2:         MOV      AL,[BX]  

              MOV DX, 0602H                

              OUT       DX, AL

              CALL DALLY              

注意:步进电机不使用时请断开连接器,以免误操作使用电机过热损坏。

实验现象:运行程序后,步进电机开始旋转

实验总结:

    通过本次实验,我们初步掌握了Wmd86软件的使用,掌握了用汇编语言控制TD-PITC实验箱的电子发声单元、点阵显示单元、步进电机单元的方法,了解了LED点阵的基本结构,了解了80X86微处理器在控制领域的实际应用,对课堂所学知识有了更深入的体会。


第二篇:计算机硬件实验报告


     计算机硬件技术基础实验报告  

一、实验目的

(1) 掌握分支程序的结构;

(2) 掌握分支程序的设计,调试方法

二、实验内容

设有3个单字节无符号数存在BUF开始的缓冲区中,编写一个能将它们从大到小重新排序的程序。

三、算法描述流程图

四、实验步骤

1. 输入源程序:

DATA  SEGMENT                       ;数据段

    BUF  DB      87,234,123

DATA  ENDS

CODE  SEGMENT                      代码段

    ASSUME  CS:CODE,DS:DATA

START:

    MOV  AX,DATA                        段寄存器初值

    MOV  DS,AX

    MOV  SI,OFFSET BUF

    MOV  AL,[SI]                            把三个数取到寄存器中

    MOV  BL,[SI+1]

    MOV  CL,[SI+2]

    CMP  AL,BL                               排序,将最大的数送AL寄存器中

    JAE   NEXT1

    XCHG  AL,BL

NEXT1:

    CMP  AL,CL

    JAE  NEXT2

    XCHG  AL,CL

NEXT2:

    CMP  BL,CL                               将最小数送CL寄存器中

    JAE  NEXT3

    XCHG  BL,CL

NEXT3:

    MOV  [SI],AL                             从大到小依次存回缓冲区

    MOV  [SI+1],BL

    MOV  [SI+2],CL

    MOV  AH,4CH

    INT  21H                       程序结束退出

CODE  ENDS

ENDS  TART

2. 在emu8086中保存源文件,执行compile。

3. 执行run,运行程序。

4. 单步执行,查看缓冲区数据段值。

五、实验结果

1. 执行run,运行程序,得到如下界面:

2. 执行single step,单步调试程序,执行结果:AL,BL,CL的值从大到小排列

3. 查看内存缓冲区三个数的初始值及结果值:

六、思考题

分支结构程序设计的关键在于准确地知道操作结果影响的标志位状态和正确地使用条件转移指令。本程序中,由于是无符号数的比较,所以也可以根据一个标志位来判定数的大小,你能说出是哪个标志位吗,且程序中的JAE指令该用什么指令替换呢?

:本程序中也可以根据一个标志位ZF来判断数的大小。本程序中的JAE可以用JA/JZ指令替换。

七、扩展题

在BUF开始的单元中有3个单字节无符号数,编写程序找出它们中的最小值并存入MIN单元。

答:比较BUF中的三个的三个值,将最小值存入MIN。

具体程序如下:

DATA  SEGMENT                       ;数据段

BUF  DB      87,234,123

MIN  DB   0

DATA  ENDS

CODE  SEGMENT                      代码段

    ASSUME  CS:CODE,DS:DATA

START:

    MOV  AX,DATA                        段寄存器初值

    MOV  DS,AX

    MOV  SI,OFFSET BUF

    MOV  AL,[SI]                            把三个数取到寄存器中

    MOV  BL,[SI+1]

    MOV  CL,[SI+2]

    CMP  AL,BL                              将最小数送AL寄存器中

    JBE   NEXT1

    XCHG  AL,BL

NEXT1:

    CMP  AL,CL

    JBE  NEXT2

    XCHG  AL,CL

NEXT2:

    MOV  MIN,AL                                  将最小值存入MIN单元中

    MOV  AH,4CH

    INT  21H                       程序结束退出

CODE  ENDS

END  START

编译运行获得结果如下:

八、实验心得

理解了汇编语言中编程的基本步骤,掌握了通过地址对数据赋值的方法。掌握汇编语言编制基本顺序结构的算法,包括地址取值和加法的算法步骤等。这个实验,使我可以在编程中认识到直接通过CPU寄存器地址赋值可以大大提高了程序效率,但我要继续练习熟读汇编语言代码的能力。我要通过不停地学习使我能够熟练运用它,它使我能清楚的看到每步的内存变化,更了解程序的操作。

更多相关推荐:
计算机硬件基础实验报告

计算机硬件基础实验报告指导教师姓名班级学号目录实验一运算器实验第3页实验二存储器读写实验第6页实验三数据通路实验第8页实验四微程序控制器试验第10页实验五TEGG1模型计算机微程序控制器测试第12页实验六TEG...

计算机硬件的组装实验报告

计算机硬件的组装实验时间:3月x日晚6:00-9:00学号:姓名:一、实验目的1.加深对理论知识的理解,提高实际动手能力;2.了解计算机的主要部件,理解各部件的功能,了解微型机的各项技术指标和参数。3.能掌握现…

计算机硬件实验报告

计算机硬件技术实验报告第二次和第三次实验姓名李新基学号20xx010630实验班号23机器号39实验二单片机C语言程序结构一实验目的1掌握单片机C语言程序结构2掌握单片机C语言程序调试方法3掌握MSP430FG...

清华大学计算机硬件技术基础实验报告

实验名称实验4寻址方式和指令系统姓名袁鹏学号20xx011780实验班号33机器号42一实验目的1了解MSP430G2xxx汇编格式指令和常用寻址方式2了解C语言函数调用过程3通过反汇编了解C编译器实现初始化变...

计算机硬件组成实验报告

计算机硬件组成实验报告一PC机硬件系统的组成计算机的硬件是指组成计算机的各种物理设备也就是我们所看得见摸得着的实际物理设备如CPU存储器软盘驱动器硬盘驱动器光盘驱动器主机板各种卡及整机中的主机显示器打印机绘图仪...

计算机硬件实验报告

计算机硬件技术实验报告实验6串行通信技术李新基学号20xx010630实验班号23机器号39目录一实验目的2二实验任务2123了解MSP430G2553实验板USB转串口的通信功能掌握串口助手的使用2查询方式控...

计算机硬件结构实验报告

计算机组织与结构实验报告姓名王洪利学院土建学院班级土木1106学号11231152目录实验一计算机硬件结构1实验目的通过对计算机的拆装熟悉计算机硬件结构了解计算机的硬件组成在实际拆分计算机主机过程中熟悉电源主板...

计算机系统硬件组成及外设的认识-实验报告

计算机科学与技术系实验报告课程名称计算机组装与维护实训计算机系统硬件组成及外设的认识姓名曹蓉学号124077031002日期地点成绩教师张毓福一实验目的1了解计算机系统的硬件组成2培养学生对计算机系统硬件各组成...

计算机硬件技术基础实验报告-循环程序设计

东北大学计算机硬件技术基础专业班级实验题目循环程序设计姓名学号日期一实验目的1加深对循环结构的理解2掌握循环程序的设计方法3熟练掌握DEBUG的常用命令学会用DEBUG调试程序二实验内容统计以BUF为首地址开始...

东北大学计算机硬件基础实验报告

东北大学计算机硬件技术基础实验报告专业班级姓名学号实验题目循环程序设计日期实验目的1加深对循环设计的理解2掌握循环程序的设计方法3熟练掌握DEBUG的常用命令学会DEBUG调试程序实验内容已知以BUF为首地址的...

计算机硬件实验报告_第三次

计算机硬件基础实验报告三实验6中断技术姓名王悦昶学号20xx010439实验班号周四第二节机器号16一实验目的1了解中断原理包括对中断源中断向量中断类型号以及中断过程的理解2掌握汇编语言中断程序的设计方法3选作...

计算机组成实验报告

湖南师范大学工学院计算机组成原理实验报告姓名年级专业计算机科学与技术学号任课教师开课时间20xx20xx学年第一学期湖南师范大学职业技术学院工学院实验数据报告单实验课程计算机组成原理实验题目基本运算器实验实验日...

计算机硬件实验报告(41篇)