测控微机原理与接口实验指导罗小燕Word文件下载.docx

上传人:b****6 文档编号:19727433 上传时间:2023-01-09 格式:DOCX 页数:12 大小:80.93KB
下载 相关 举报
测控微机原理与接口实验指导罗小燕Word文件下载.docx_第1页
第1页 / 共12页
测控微机原理与接口实验指导罗小燕Word文件下载.docx_第2页
第2页 / 共12页
测控微机原理与接口实验指导罗小燕Word文件下载.docx_第3页
第3页 / 共12页
测控微机原理与接口实验指导罗小燕Word文件下载.docx_第4页
第4页 / 共12页
测控微机原理与接口实验指导罗小燕Word文件下载.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

测控微机原理与接口实验指导罗小燕Word文件下载.docx

《测控微机原理与接口实验指导罗小燕Word文件下载.docx》由会员分享,可在线阅读,更多相关《测控微机原理与接口实验指导罗小燕Word文件下载.docx(12页珍藏版)》请在冰豆网上搜索。

测控微机原理与接口实验指导罗小燕Word文件下载.docx

如果程序有错误,则在编译过程中有错误提示(错误行和错误原因),改正后再保存,重新编译,直到编译成功为止。

第三步:

点击“运行”,在下拉菜单中选择“DEBUG调试”,在调试状态下,依次输入单步指令T,观察各寄存器和标志寄存器的内容的变化。

2.学习使用Debug的各种命令

DEBUG是一种专门为分析和调试汇编语言程序而设计的一种调试工具。

它能使程序设计者接触到机器内部,具有跟踪程序执行、观察中间运行结果、显示和修改寄存器或存储单元内容、装入或显示、修改任何文件、完成磁盘读写等多种功能。

经常用到的DEBUG指令有:

(1)单步执行命令T(也叫跟踪命令)

格式:

T[N]];

(N小于等于6)

从CD:

IP开始执行程序,每执行1或(N)条停下来。

执行后都将显示各寄存器的内容、标志位的状态、本条指令的CS:

IP地址,本条指令的机器码和下一条要执行的指令。

如在EX11.EXE程序中,第一条指令为ASART开始的MOVAX,DATA,执行了T后,显示:

还可以连续执行几条,如T6,结果如下:

(超过6,将显示不下)

(2)显示、修改寄存器命令R

R[寄存器名]

若缺省寄存器名,则显示当前所有寄存器内容、状态标志及将要执行的下一条指令的地址、及其指令代码及汇编语句形式等。

如R

若给出寄存器名称,则显示该寄存器的内容并可进行修改。

如:

RAX

(3)显示内存单元内容命令D

D[段地址:

偏移地址]

DES:

0,将显示ES:

0000~0070共128个单元的内容。

屏幕左边为每行的首地址(段:

偏移量)。

中间为从指定地址开始的128个内存单元的内容,用十六进制的格式输出,右边为内存单元中的数据对应的相应可显示的ASCII码字符。

没有对应的ASCII码就用.来代替。

(4)修改存储单元命令E

格式1:

E[地址]

可以逐个修改制定地址单元的当前内容,如:

E1000:

0F

在下图中,先用D查看1000:

0~F单元的内容,再用E修改从1000:

0开始的10个单元的内容,最后用D查看变化。

格式2:

E[地址][字符串]

格式3:

E[地址][机器码]

还可以用E命令将机器码写入内存,如从内存1000:

0单元写入一段机器码,然后用D命令查看刚才写入的内容。

机器码对应的汇编指令

B80100movax,0001

B90200movcx,0002

01c8addax,cx

(5)反汇编命令U

U[起始地址]

如用U1000:

0可将1000:

0开始的内存单元的内容翻译为汇编指令,并显示出来。

(6)汇编命令A

格式:

A[起始地址]可以按住ctrl+c键退出汇编命令

在当前地址开始键入汇编语言语句,并能把它们汇编成机器代码,相继存放在从指定地址开始的存储区中。

即用汇编指令的格式在指定内存中写入机器指令。

(7)填入命令F

F地址范围内容

F1234:

091,2,3,4,5,6,7,8,9将1234:

0开始9个单元的内容填入指定内容,可以用D命令观察结果。

(8)退出命令Q

Q退出DEBUG,回到DOS状态,但无存盘功能。

4.完成以下实验任务

(1)分别使用E命令和A命令两种方式将下面的程序段写入内存1000:

0中,逐条执行,观察每条指令执行后CPU中相关寄存器的变化。

提示:

注意CS:

IP的指向。

机器码汇编指令

B8204emovax,4e20

051614addax,1416

Bb0020movbx,2000

01d8addax,bx

(2)用D命令查看DS:

0010-002f和F000:

0010-002F两内存块内容,用F命令将字符“A”分别填入这两个内存块,比较填入前后结果,了解可读写内存RAM和只读内存ROM的区别。

 

三.实验报告要求

1.总结T、R、D、E、U、A等命令的含义。

2.写出合适的DEBUG命令,完成任务

(1),

(2),观察产生的现象,说明可读写内存RAM和只读内存ROM的区别。

3.写出实验小结,内容包括实验心得(收获)、不足之处或今后应注意的问题等。

实验2寻址方式与基本指令

1.掌握指令中源操作数的寻址方式的判断。

2.掌握状态标志寄存器各标志位在DEBUG中的显示形式。

3.掌握80x86指令的正确用法。

1.学习状态标志寄存器各标志位在DEBUG中的显示形式

顺序

标志位名字

置位=1

复位=0

1

OF溢出(有/无)

OV

NV

2

DF方向(减/增)

DN

UP

3

IF中断(允许/屏蔽)

EI

DI

4

SF符号(负/正)

NG

PL

5

ZF零(是/否)

ZR

NZ

6

AF辅助进位((有/无)

AC

NA

7

PF奇偶(偶/奇)

PE

PO

8

CF进位(有/无)

CY

NC

2.将下列源程序汇编为EX11.EXE文件,使用DEBUG的T命令执行,并回答以下问题。

(1)代码段第一条可执行指令MOVAX,DATA对应的机器代码为H,它是一个字节指令。

(2)执行完MOVDS,AX指令后,数据段寄存器DS的内容为H,源程序在数据段中定义的数据82H、68H和88H被装入的存储单元的物理地址分别为

H、和H。

(3)程序中第一条ADDAL,[BX]指令是一个字节指令,该操作数所在存储单元的逻辑地址(DS):

(BX)为,其物理地址为H;

执行完该指令后(AL)=H,CF=,OF=,ZF=,SF=,AF=,PF=。

(4)执行完第二条ADDAL,[BX]指令后(AL)=H,CF=,OF=,ZF=,SF=,AF=,PF=。

(5)指令MOVSUM,AL执行完后,注意观察(DS):

0003H单元中值的变化,该单元的值变为H。

3.将下列源程序汇编为EX12.EXE文件,使用DEBUG的T命令执行,并回答以下问题。

STACKSEGMENT

STLDW100HDUP(?

STACKENDS

ASSUMECS:

CODE,SS:

STACK

START:

MOVAX,STACK

MOVSS,AX

MOVSP,LENGTHSTL

MOVAX,0101101100001010B

MOVBX,0100110010100011B

PUSHAX

PUSHBX

ADDAX,BX

POPAX

POPBX

ANDAX,BX

MOVAH,4CH

ENDSTART

(1)代码段的前三条指令MOVAX,STACK、MOVSS,AX和MOVSP,LENGTHSTL的功能为堆栈初始化,试问执行完这三条指令后,堆栈的栈底所在单元的逻辑地址(SS):

(SP)为;

执行PUSHAX指令后堆栈指针寄存器(SP)=H,此时,(SS):

(SP+1)和(SS):

(SP)单元的值为H;

执行完PUSHBX后

(SP)=H,此时,(SS):

执行完POPAX后(SP)=H;

执行完POPBX后(SP)=H;

此时(AX)=H,(BX)=H。

(2)执行ADDAX,BX指令后(AX)=H,CF=,OF=______,ZF=______,SF=______,AF=______,PF=______;

(3)执行ANDAX,BX指令后(AX)=H,CF=,OF=,ZF=,SF=,AF=,PF=。

四.实验报告要求

1.简要说明DEBUG的单步执行命令T的作用。

2.写出实验内容中任务2和任务3中所有问题的正确答案。

3.写出实验小结,内容包括实验心得(收获)、不足之处或今后应注意的问题等。

实验3汇编语言的调试与运行

1.掌握80x86指令的正确用法。

2.掌握堆栈指令的寻址方式及执行结果。

1.学习书第110页例4.4,将程序补充完整,使用DEBUG命令调试之。

例4.4:

内存数据段存放了5个带符号数,首地址为TAB1,要求将各数取绝对值后存入以TAB2为首址的内存区。

程序片段如下:

LEASI,TAB1;

(SI)←源地址指针

LEADI,TAB2;

(DI)←目标地址指针

MOVCX,5;

(CX)←循环次数

CHECK:

MOVAL,[SI];

取一个带符号数到AL

ORAL,AL;

AL内容不变,但使之影响标志

JNSNEXT;

若(SF)=0,则转NEXT

NEGAL;

否则求补

NEXT:

MOV[DI],AL;

传送到目标地址

INCSI;

源地址加1

INCDI;

目标地址加1

DECCX;

循环次数减1

JNZCHECK;

如不等于零,则转CHECK

补充数据段和部分代码段。

使用DEBUG的D命令观察程序的准确性。

2.将下列指令汇编成为程序EX14.EXE,上机运行,观察指令执行后寄存器的内容。

MOVSP,2000H

MOVAX,3000H

MOVBX,5000H

PUSHAX

PUSHBX

POPAX

执行后(SP)=H,(AX)=H,(BX)=H

3.读懂下列程序,在横线上分别填入

(1)LOOPAGAIN

(2)LOOPEAGAIN

(3)LOOPNEAGAIN

指出程序执行后,AX,BX,CX,DX的内容。

CODESEGMENT

ASSUMECS:

CODE

MOVAX,1

MOVBX,2

MOVDX,3

MOVCX,4

AGAIN:

INCAX

ADDBX,AX

SHRDX,1

MOVAH,4CH

INT21H

CODEENDS

ENDSSTART

三.实验报告要求

1.写出实验内容1,2,3中所有问题的正确答案。

2.写出实验小结,内容包括实验心得(收获)、不足之处或今后应注意的问题等。

实验4DOS系统功能调用

1.掌握DOS系统功能调用中关于字符及字符串的输入输出方法。

2.掌握汇编语言程序设计的方法。

3.进一步掌握调试工具DEBUG的使用方法。

1.INT21H的DOS功能调用中关于基本字符、字符串输入和输出功能的主要有4种。

(1)显示字符(02H号功能)

MOVDL,<

欲显示的字符的ASCII>

MOVAH,02H

功能:

将置入DL寄存器中的字符(ASCII码)送屏幕显示。

(2)显示字符串(09H号功能)

MOVAX,SEG<

欲显示的字符串的首地址>

MOVDS,AX

LEADX,<

欲显示字符串的地址>

MOVAH,09H

功能:

将指定内存缓冲区中的字符串在屏幕上显示出来,缓冲区的字符串应以“$”为结束标志。

2.学习书上第135页例4.15,将程序补充完整,并运行,观查结果。

例4.15:

在包含10个字符的字符串中寻找第一个回车符CR(其ASCII码为0DH),找到后将其地址保留在(ES:

DI)中,并在屏幕上显示字符'

Y'

如果字符串中没有回车符,则在屏幕上显示字符'

N'

该字符串的首地址为STRING。

LEADI,STRING;

(DI)←字符串首址

MOVAL,0DH;

(AL)←回车符

MOVCX,10;

(CX)←字符串长度

CLD;

清状态标志位DF

REPNESCASB;

如未找到,重复扫描

JZMATCH;

如找到,则转MATCH

MOVDL,'

字符串中无回车,则(DL)←'

JMPDSPY;

转到DSPY

MATCH:

DECDI;

(DI)←(DI)−1

MOVDL,'

(DL)←'

DSPY:

MOVAH,02H

INT21H;

显示字符

补充附加数据段和部分代码段。

3.学习书上第111页例4.5,将程序补充完整,并将大数显示出来。

例4.5在数据段从MYDATA开始的存储单元中分别存放了两个8位无符号数,试比较它们的大小,并将大者传送到MAX单元。

LEABX,MYDATA;

MYDATA偏移地址送BX

MOVAL,[BX];

第一个无符号数送AL

INCBX;

BX指向第二个无符号数

CMPAL,[BX];

两个数比较

JNCDONE;

如CF=0,则转DONE

MOVAL,[BX];

否则,第二个无符号数送AL

DONE:

MOVMAX,AL;

较大的无符号数送MAX单元

将一位BCD数转换为ASCII码后才能被显示。

4.完成书后练习,214页第11题,运行,观查结果。

练习4.11:

试编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否相同,若相同则显示“MATCH”,若不相同则显示“NOMATCH”。

三.实验报告要求

1.完成实验内容2,3,4,写出完整程序和结论。

2.写出实验小结,内容包括实验心得(收获)、不足之处或今后应注意的问题等。

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

当前位置:首页 > 解决方案 > 商业计划

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

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