微机原理软件实验指导书(5)

1970-01-01 08:00

(3)运行执行程序,输入不同的加数和被加数,观察结果。

2、十进制加法和算式显示程序(自行设计) 1) 程序设计要求 在以上十进制数加法要求的基础上,将加法算式及和在显示器上显示。 如ADDOP1中存放1234H,在ADDOP2中存放6789H,执行程序后显示器上显示: 1234+6789=8023 2) 实验步骤: (1)建立源程序文件。

(2)用MASM宏汇编程序和LINK连接程序生成执行程序。 (3)运行执行程序,输入不同的加数和被加数,观察结果。

3、键盘输入加数和被加数进行十进制数加法,显示结果程序(自行设计) 1)程序设计要求 采用DOS的键盘功能调用和显示功能调用,将键盘输入的4位十进制被加数和4位加数相加,和存入有关内存单元,并将算式及和显示在显示器上。 要求采用子程序的设计方法设计程序,例如设计一个从键盘读入输入数据的子程序和将数据显示的子程序。

2)实验步骤:同上

(三)模块化程序设计

模块化程序设计是指将一个较大的功能分解成几个独立功能的子模块,每个子模块独立编缉各自建立一个文件,通过单独的汇编生成各个独立的目标文件,然后由LINK 程序将各个目标文件链接在一起,形成一个完整的执行文件。

1)实验程序的设计思想及其实现功能 程序实现键盘输入十进制数,以十六进制数形式在屏幕上显示的功能。程序分成两个模块,模块A为主程序,负责从键盘输入一个十进制数,处理后存入指定内存单元。模块B主要实现屏幕提示和将十六进制数转换及显示的功能。

实验程序参见教科书“微型计算机原理及应用”(吴宁主编)P185页上 模块化程序设计例1。

2) 实验步骤:

(1) 输入模块A程序和模块B程序,各产生一个文件。 (2) 汇编两个程序生成两个目标文件。

(3) 用LINK 文件名1+文件名2 命令链接为一个可执行文件。 (4) 运行程序,输入不同的十进制数,观察结果。

21

四、 思考题:

1、在实验(一)题3中,如输入01-12以外的数时将会出现什么结果?

2、如果输入非法的十进制数时,你所设计的实验(二)题3的程序是如何处理的?若无这种功能请增加提示、出错处理等功能,完善以上程序。

3、实验(三)的程序中是否对输入任何位的十进制数都能在屏幕上显示其十六进制数? 4、在实验(三)的程序中如果以回车键作为对输入数据的确认,程序应作什么修改?

五、试验报告要求

写出(二)1、2、3自行设计的采用DOS功能调用设计源程序的程序清单。

22

附录一 DEBUG命令及其操作

DEBUG是为汇编语言设计的一种调试工具,它通过单步、设置断点等方式为汇编语言程序员提供了非常有效的调试手段。

6.1 DEBUG 程序的调用

在DOS的提示符下,可键入命令:

C>DEBUG[d: ][path]filename[.exe][parm1][parm2]

其中,文件名是被调试文件的名字。如用户键入文件名,则DUBUG将指定的文件装入存储器中,用户可对其经行调试。如果未键入文件名,则用户可以用当前存储器的内容工作,或者用DUBUG命令N和L把需要的文件装入存储器后再经行调试。命令中的d指定驱动器,path为路径,parm1和parm2则为运行被调试文件时所需要的命令参数。

在DUBUG程序调入后,将出现提示符,此时就可用DUBUG命令来调试程序。

6.2 DUBUG的主要命令

1)显示存储单元的命令D(DUMP),格式为: -D[address]或 -D[range]

例如,按指定范围显示存储单元内容的方法为:

—d100 120

18E4:0100 C7 06 04 02 38 01 C7 06—06 02 00 02 C7 06 08 02 G?8.G??G? 18E4:0110 02 02 BB 04 02 E8 02 00—CD 20 50 51 56 57 8B 67 ?;?h?MPQVW. 7

18E4:0120 8B

其中0100至0120是DUBUG显示的单元内容。左边用十六进制表示每个字节,右边用ASCII字符表示每个,。表示不可显示的字符。这里没有指定段地址,D命令自动显示DS段的内容。如果只指定首地址,则显示从首地址开始的80个字节的内容。如果完全没有指定地址,则显示上一个D命令显示的最后一个单元后的内容。

2)修改存储单元内容的命令有两种。 .输入命令E(Enter),有两种格式如下:

第一种格式可以用给定的内容表来替代指定范围的存储单元内容。命令格式为: —E address [List]

例如,—E DS :100 F3’XYZ’8D

其中F3,’X’,’Y’,’Z’和8D各占一个字节,该命令可以用这五个字节来替代存储单元DS:0100到0104的原先的内容。

第二种格式则是采用逐个单元相继修改的方法。命令格式为: —E address

23

例如,—e cs :100 则可能显示为:

18E4:0100 89.—

如果需要把该单元的内容修改为78,则用户可以直接键入78,在按“空格”键可接着显示下一个单元的内容,如下:

18E4:0100 89.78 1B

这样,用户可以不断修改相继单元的内容,直到用Enter键结束该命令为止。

3)检查和修改寄存器内容的命令R(Register),它有三种格式如下: .显示CPU内所有寄存器内容和标志位状态,其格式为: —R 例如,

—r

AX=0000 BX=0000 CX=010A DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000 DS=18E4 ES=18E4 SS=18E4 CS=18E4 IP=01OO NV UP DI PL NZ NA PO NC 18E4:0100C70604023801 MOV WORD PTR [0204],0138 DS:0204=0000

其中标志位状态的含义可见第二章表2.1。

.显示和修改某个寄存器内容,其格式为: —R register name 例如,键入

—r ax

系统将响应如下:

AX FIF4 :

即AX寄存器的当前内容为FIF4,如不修改则按Enter键,否则,可键入欲修改的内容,如:

—r bx BX 0369 : 059F

则把BX寄存器的内容修改为059F。

4)运行命令G

,其格式为

—G[=address1][address2[address3?]。

其中,地址1指定了运行的起始地址,如不指定则从当前的CS:IP开始运行。反面的地址均为断点地址,当指令执行到断点时,就停止执行并显示当前所有寄存器及标志位的内容,和下一条将要执行的指令。

5)跟踪命令T(Trace),有两种格式; .逐条指令跟踪 —T[=address]

从指定地址执行一条指令后停下来,显示所有寄存器内容及标志位的值。如未指定地址则从当前的CS:IP开始执行。

.多条指令跟踪

-T[=address][value]

24

从指定地址起执行n条指令后停下来,n有value指定。

6)汇编命令A(Assemble),其格式为: —A[address]

该命令允许键入汇编语言语句,并能把它们汇编成机器代码,相继地存放在从指定地址开始的存储区中。必须注意:DUBUG把键入的数字均看成十六进制数,所以如要键入十六进制数,则起后应加以说明,如100D。

7)反汇编命令U(Unassemble),有两种格式。 .从指定地址开始,反汇编32个字节,其格式为: —U[address] 例如:

-u100

18E4:0100 C70604023801 MOV WORD PTR [0204],0138 18E4:0106 C70606020002 MOV WORD PTR [0206],0200 18E4:010C C70608020202 MOV WORD PTR [0208],0202 .对指定范围内的存储单位经行反汇编,格式为: —U[range]

例如:

-u100 10c

18E4:0100 C70604023801 MOV WORD PTR [0204],0138 18E4:0106 C70606020002 MOV WORD PTR [0206],0200 18E4:010C C70608020202 MOV WORD PTR [0208],0202 8)命名命令N(Name),其格式为: —N filespece[filespeces]

命令把两个文件标识符格式化在CS:5CH和CS:6CH的两个文件控制块中,以便在其后用L或W命令把文件装入或存盘。Filespecs的格式可以是:

[d: ][path] filename[.ext] 例如,

—N myprog —L —

可把文件myrong装入存储器。

9)装入命令L(Load),有两种功能。

。把磁盘上指定扇区范围的内容装入到存储器从指定地址开始的区域中。其格式为: L [address[drive sector sector] .装入指定文件,其格式为: —L[address]

此命令装入已在CS:5CH中格式化了控制块所指定的文件中。如未指定地址,则装入CS:0100开始的存储区中。

10)写命令W(Write),有两种功能。 .把数据写入磁盘的指定扇区。其格式为: —W address drive sector sector

25


微机原理软件实验指导书(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:环保应急预案最终1次修改

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: