测控12微机原理实验.docx

上传人:b****5 文档编号:8738579 上传时间:2023-02-01 格式:DOCX 页数:17 大小:24.93KB
下载 相关 举报
测控12微机原理实验.docx_第1页
第1页 / 共17页
测控12微机原理实验.docx_第2页
第2页 / 共17页
测控12微机原理实验.docx_第3页
第3页 / 共17页
测控12微机原理实验.docx_第4页
第4页 / 共17页
测控12微机原理实验.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

测控12微机原理实验.docx

《测控12微机原理实验.docx》由会员分享,可在线阅读,更多相关《测控12微机原理实验.docx(17页珍藏版)》请在冰豆网上搜索。

测控12微机原理实验.docx

测控12微机原理实验

测控12-1.2微机原理及应用课程实验

简介:

本实验课程的安排与“微机原理及应用”课程讲授紧密结合,是该课程的延伸。

旨在加深对课堂教学内容的理解,打下微型计算机应用方面坚实基础,培养学生独立分析问题和软硬件开发能力。

要求运用所学到的原理和编程技术,在计算机上独立编写程序,在Pentium机的实模式下进行汇编、链接和调试通过,深化理解所学内容。

通过实际操作,掌握方法、巩固知识、提高能力。

说明:

1.TASM、TLINK是微机上机实验或作业的工具,请大家保存在硬盘根目录下,文件夹用TASM命名为佳。

2.自己的实验程序用英文命名,不要超过8个字符,建议和TASM、TLINK存在一个文件夹中。

3.带“*”的为提高题。

4.Debug命令参见附录一。

实验1(2学时)

简单运算程序设计

[目的]熟悉TASM、TLINK的操作,练习用简单的指令和伪指令编写完整的程序,并调试通过。

[设计要求]

1.在数据段建立以NUMB为首址,以byte为单位的数据区域,NUMB和NUMB+1单元分别为36H和18H,再编写.EXE程序,求这两个数的和与差。

2.观察有关寄存器、存储单元和FLAGS的改变。

实验2(2学时)

循环结构程序设计

[目的]掌握循环结构程序设计方法以。

[设计要求]

编一程序找出十个字节数中最大数(十个数自拟,要求正负数都有,赋在数据段变量中。

)。

要求程序运行结束后在屏幕上显示出:

Max Num is:

XXH

实验3(2学时)

子程序结构程序设计

[目的]掌握排序方法;子程序的运用。

[设计要求]

编一程序对十个字节数排序(十个数自拟,要求正负数都有,赋在数据段变量中)。

要求排序结果在屏幕上显示出。

 

实验4(2学时)

换码程序设计

[目的]掌握十六进制数转换成十进制数的方法。

[设计要求]

编一程序将键盘输入的4位十六进制数转换成等值的十进制数,并送屏幕显示。

 

实验5(2学时)

8259中断控制器应用

[目的]学习8259中断控制器的工作原理;学习8259可编程控制器的应用编程;掌握使用PC机内8259的方法;掌握修改中断向量的方法。

[设计要求]

编写一键盘中断处理程序,计数键盘中断次数,并用该程序替换系统键盘中断处理程序,使当键盘中断产生10H次后,显示按键次数并结束应用。

 

实验6(2学时)

8255并行接口实验(流水灯显示)

[目的]掌握8255的工作方式及应用编程;掌握8255的典型应用电路接法。

[设计要求]

设置A、B两端口为输出端口,分别向A口和B口写入7FH和FEH,然后分别将该数右移和左移一位,再送到端口上,这样循环下去,从而实现流水灯的显示。

[实验步骤]

1、设计实验线路图如下,并将PCI总线扩展卡的ADD-ON总线与仿真ISA总线进行连接,完成线路连接。

(接线图另外发图片文件)

2、编写实验程序,检查无误后汇编、连接。

3、打开实验箱电源,运行程序,观察数据灯的显示。

附录一

DEBUG命令表:

   

A(汇编)命令

   用途:

把计算机的宏汇编语句直接汇编到内存中.

   格式:

A[address]

   说明:

“A”是一条逐行汇编命令,当使用“A”命令时,并不直接将16进制字节(机器

码)键入存储器,而键入的是助记符。

但键入的汇编语句被汇编在指定地址的连续单元中.

 在“A”命令后没指出地址时,分两种情况:

 a.没指定地址同时前面没有使用汇编命令,则语句被汇编到CS:

100开始的区域中.

 b.没指定地址,但前面已有汇编命令,则语句被汇编到紧接着前一条汇编语句的后

一个地址单元里。

   

 例

    -                  ;“-”为DEBUG提示符

 -A

   0CDE:

0100 DB ‘THISISANEXAMPLE’,‘$’

   0CDE:

0113 DB ‘123456789ABCDEF$’

   OCDE:

0133 MOV DX,0100

   0CDE:

0136 MOV AH,09

   0CDE:

0138 1NT 21

   0CDE:

013A MOV DL,0D

   0CDE:

013C MOV AH,02

   0CDE:

013E INT 21

   0CDE:

0140 MOV DL,0A

   0CDE:

0142 MOV AH,02

   0CDE:

0144 INT 21

   0CDE:

0146 MOV DX,0100

   0CDE:

0149 MOV AH,09

   0CDE:

014B INT 21

   0CDE:

014D 1NT 20

   0CDE:

014F

   -                  ;“-”为DEBUG提示符

   *在DEBUG状态下键入的数字都是16进制数,所以不要用H表示为16进制数。

   在语句输入完后,只要按ENTER键,即告诉DEBUG用户程序输入完毕,此时回

   到DEBUG初始状态。

   注意:

   

(1)DEBUG不能识别操作数是字存储单元,还是字节存储单元。

必须用前缀

 “WORDPTR”或“BYTEPTR”来明确指出数据类型。

 WORD和BYTE可简写为

  WO,BY。

     例:

 NEG BYTE PTR[l28]

           DEC WORD PTR[SI]

   

(2)NEAR前缀可缩写为NE,但FAR前缀不能缩写。

   

C(比较)命令   

   用途:

比较两个内存区的内容。

   格式:

 Crangeaddress

   说明:

比较两个内存区的内容,比较长度由range决定,若发现不相等的字节,按下

 列格式显示它们的内容。

   addr1    bytel   byte2   addr2

   例:

 先用D命令显示两个存储区的内容。

   -D0100

   0CDE:

01005448495320495320—414E204558414D50

   0CDE:

01104C45243120322033—2020342035203620

   -C0100L60 11F  ;比较100H和11FH开始的6个字符。

   0CDE:

0100 544CCDE:

0110

   0CDE:

0101 48450CDE:

0111

   0CDE:

0102 49240CDE:

0112   ;不同字符

   0CDE:

0103 53310CDE:

0113

   0CDE:

0105 49320CDE:

0115

   

D(显示)命令

   用途:

显示部分存储区的内容。

   格式:

D[address]或D[range]

   说明:

显示指定内存单元的内容。

   

(1)在输入的起始地址中,只键入一个相对偏移量,段地址为DS中。

   -D100

   0915:

01005448495320495320-414E204558414D50

   0915:

01104C45243120322033-2034203520362037

   0915:

01202038203920412042-2043204420452046

   

(2)若要显示指定范围的内容,则要输入显示的起始和结束地址.

   -D0100011F

   0915:

01005448495320495320-414E204558414D50

   0915:

01104045243120322033-2034203520362037   

   (3)如果用D命令没有指定地址,则当前D命令开始地址是由前一个D命令所显示

的最后单元后面的单元地址。

 E(修改)命令

 用途:

修改RAM区的单元内容

 格式:

Eaddress[List]

 说明:

该命令可以在指定的地址里修改一个或多个字节的内容,同时也可连续的修改

每个字节的内容。

如:

   

(1)连续修改每个字节的内容

   -D0180              ;显示0180单元开始的内容 

   0915:

01800000000000000000-0000000000000000

   0915:

01900000000000000000-0000000000000000

   -E 0180   ;修改开始,每修改—个单元后按空格键再修改第二个单元

   0915:

018000.12   00.34 00.56 00.78 00.12 00.54 00.99 0087

   0915:

018800.21   00.AC 00.SS 00.CB 00.BE 00.FC 00.EF 00.BA

   0915:

019000

   -D0180019F   ;修改完毕,检查正确否

   0915:

01801234567812549987-21AC00CBBEFCEFBA

   0915:

01900000000000000000-0000000000000000

   

(2)用给定的内容去代替指定范围的内存单元内容。

   -d

   0915:

01500000000000000000-0000000000000000

   0915:

01600000000000000000-0000000000000000

   -e0150‘whatisyourname?

   -d 0150016F

   0915:

01507768617420697320-796F7572206E616D

   0915:

016065203F0000000000-0000000000000000

   (3)输入一个连接号‘-’,则显示前一个地址单元的内容,若修改就键入一个字节,

 然后按“-”,则又显示前一个地址单元内容···。

如显示的单元不修改,则按“-”。

   -D 0150 015F   ;从150H到15FH单元内容  

   0CDD:

0150 08200800D038041B一5B324A4298 1l44AC

   

   -E0160              ;从160单元开始修改

   0CDD:

016025.-     ;160单元不修改,键入“-”

   0CDD:

015FAC.23-   ;15F单元用23替代原先AC

   0CDD:

015E44.AA-   ;15E单元用AA替代原先44

   0CDD:

015D11.55-   ;修改完毕

   -D0150015F         ;检查修改后的单元内容

   0CDD:

0150 082008000D3804 1B-5B324A4298 11 AA23

   

   F(填充)命令   

   用途:

把表中的值填到内存单元中。

   格式:

FrangeList   

   说明:

如果List所含的字节数比range小,则List被重复使用,如List所含的字节

  数比range大,则多余被略去。

 

   -F 0280L20“ABCDEF” ;把ASCⅡ码填入到从280开始的32个单元里

   -D 0280029F                     ;检查

   0CDD:

02804l42434445463031-3233343536373839

   0CDD:

02904142434445463031-3233343536373839

  

   -F 0100L9“ABCDEF”   ;删除多余的3-9

   -D 0100010F                      ;检查   

   0CDD:

0100 4142434445463031-320DOA007038496E

   G(执行)命令  

   用途:

执行需运行的程序,并对调试的程序进行断点测试跟踪。

   格式:

G[=address][address[address···]]

   说明:

程序从当前指令开始执行,执行的地址由CS和IP的内容决定。

如用“=ad-

    dress”参数取代,则程序从CS:

“=address”开始执行。

  

   -A

   0CDD:

0100 DB‘THISISANEXAMPLE’,‘$’

   0CDD:

0113 DB‘123456789ABCDEF$’   

   0CDD:

0132   MOV   DX,0100   

   0CDD:

0135   MOV   AH,09   

   0CDD:

0137   1NT   21

   0CDD:

0139   MOV   Dl,0D

   0CDD:

013B   MOV   AH,02

   OCDD:

013D   INT   21

   0CDD:

013F   MOV   DL,0A

   0CDD:

0141   MOV   AH,02

   0CDD:

0143   INT   21

   0CDD:

0145   MOV   DX.0113

   0CDD:

0148   MOV   AH,09

   0CDD:

014A   INT   21

   0CDD:

014C   INT   20   

   0CDD:

014E   

 -G          ;从CS:

IP=0CDD:

0100开始运行结果在显示器上显示出

 THlSISANEXAMPLE

 123456789ABCDEF

 Programterminatednormally

 -G=0132

 THISISANEXAMPlE

 123456789ABCDEF

 Programterminatednormally

-G=013F

 123456789ABCDEF

 Programterminatednormally

-G=0132 013F   ;程序从0132开始运行,在013F处设置一个断点

   THlSISANEXAMPLE

   AX=020D BX=0000 CX=0000DX=010D SP=FFEE BP=0000 SI=0000 DI=0000

   DS=0CDD ES=0CDD SS=OCDDCS=0CDD IP=013F NVUPEIPLNZNAPONC

   0CDD:

013FB20A   MOV DL,0A   

   注意:

 

   

(1)一旦程序运行结束(DEBUG显示“programterminatednormally”信息),在它

再次执行之前,必须重新启动程序。

 

   

(2)地址参数指向的位置必须含有合法的8086/8088指令码,如指定第一个字节为

非法指令,那么会出现不可预测的结果。

  

   (3)堆栈指示器必须是合法的,并且对G命令有6个字节可用,否则会出现不可预

测的结果.   

   (4)对断点只键入一个偏移量,G命令设该段在CS寄存器中。

   

H(16进制运算)命令  

   用途:

对两个16进制数进行加,减,然后显示出和与差。

   格式:

HValueValue

   

   -HAB

   0015FFFF   ;和为0015H,差为FFFFH

   I(输入)命令

用途:

从指定的端口显示出输入数据字节。

  

   格式:

Iportaddtess   

   -I200   

   FF     ;从200端口读入FF字节 

   

L(装入)命令   

   用途:

把磁盘上的内容装入内存。

   格式:

L或Laddress

   说明:

此命令装入在CS:

5CH格式化的文件控制块所指定的文件,所以在使用这种格

 式的L命令以前,在CS:

5CH中必须有已格式化的文件标识符,这通常用N命令采实现。

   若命令没规定地址,则文件装入到CS:

100开始的内存区中,若命令规定了地址,则 

 装入到指定的区域中,但对具有扩展名的.COM或.EXE的文件,则始终是装入到CS:

100

 的内存区中,即使命令中指定了地址,此地址也被忽略。

   A>DEBUG   

   -NSS.COM   

   -L              ;把SS.COM文件从磁盘装人内存

   -U0114011D    ;用反汇编检查装人内存程序正确否(文件见W命令)

   0CF3:

0114BA0001   MOV   DX,0100

   0CF3:

0117B409     MOV   AH,09   

   0CF3:

0119CD21     INT   21

   0CF3:

011BCD20     1NT   20

   0CF3:

011D6F        DB   6F

   -D0100011D   

   0CF3:

0100 5448495320495320-414E204558414D50   

   0CF3:

0110 4C452024BA0001B4-09CD21CD206F

   

M(传送)命令

   用途:

把由range规定的内存单元区域的内容传送到address开始的单元。

   格式:

Mrangeaddress   

   说明:

传送期间总是执行复盖传送,源区域的数据保持不变。

   -DDS:

0100011F  

   0CDD:

0100CD2000A0009AEEFE-IDF0F50242092E03

   0CDD:

0110424F4D535045433D-433A5C434F4D4D41

   -DDS:

0000001F   

   0CDD:

0000 42 09 BD02 42 09 3B 08-01 01 01 00 02 FF FF FF

   0CDD:

0010 42 09 BD02 42 09 3B 08-01 01 01 00 02 FF FF FF

   -DCS:

050005lF   

   L

   0CDD:

0500 CD2000A0009AEEFE-1DF0 F50242092E03   

   0CDD:

0510 424F4D535045433D-433A 5C434F4D4D41

   

-DCS:

0800080F

 0CDD:

08000000000000000000-0000000000000000

   -MDS:

0000000FDS:

0100   ;把DS:

0000开始的000FH个单元内容传送到CS:

100开始的单元里

 -DDS:

0100010F   ;检查传送结果

0CDD:

0100 42 09 BD02 42 09 3B 08-01 01 01 00 02 FFFFFF

 -MDS:

0100 010F CS:

0800   ;把DS:

100开始的0FH个单元内容传送到CS:

800开始的单元里

 -DCS:

0800080F    ;检查传送结果

 0CDD:

080042 09 BD02 42 09 3B08-01 01 01 00 02 FFFFFF

 

 N(命名)命令

 用途:

给文件定名,用于文件存盘或装入内存区。

 格式:

Nfilespec[filespec…]   

 说明:

用命令中给定的两个文件标识符,格式化在CS:

5CH和CS:

6CH的两个文件控制块(若在

调用DEBUG程序时具有一个文件标识符,则它已格式化在CS:

5CH的文件控制块)中,文件控制块

是为L和W命令提供所要求的文件名。

    所有文件标识符和参数按键人的模式,放在CS:

81H开始的参数保存区中,在CS:

80H

中保存输入的字符个数,在寄存器AX中保存前两个文件标识符中的驱动器标志。

A>DEBUG

-NSS.COM   ;给文件命名为SS,扩展名为COM(文件见W命令)

-L

-U0114 011D   

0CF3:

0114 BA0001   MOV   DX,0'00

0CF3:

0117 B409     MOV   AH,09

0CF3:

0119 CD21     INT   21

0CF3:

011B CD20     INT   20

OCF3:

011D 6F       DB   6F

-D0100 011D   

0CF3:

0100 54 48 49 53 20 49 53 20-41 4E 20 45 58 41 40 50

0CF3:

0110 4C 45 20 24 BA 00 01 B4-09 CD 21 CD 20 6F

 -G   

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 中国风

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1