实验二
简单程序设计
一. 实验目的:
1. 掌握简单程序的设计和调试方法
2. 利用汇编调试工具加深对机器指令和伪指令的了解
二. 实验要求:
1. 掌握汇编程序的基本结构及设计方法,包括:
A 汇编语言源程序结构
B 基于汇编级的解题算法
C 寄存器和存储器的内容分配
D 简单汇编程序的设计
E 返回系统的方法
2. 掌握对自编程序的调试及出错修改的方法,包括:
A 汇编程序的编辑、编译、链接及调试
B 在调试程序过程中发现语法错误的处理方法
C 在调试程序过程中如何发现逻辑错误及处理方法
3. 利用调试工具软件对课堂中讲授的机器指令、伪指令、操作符、运算符等内容加深了解
三. 实验仪器:
PC 机一台
四. 实验内容:
2.1 用多种寻址方式将数据段中定义的A1(字),A2(字),A3(双字)的数据分别送至附加段B1,B2,B3单元。
2.2 将 A 中的大写英文字母转换成相应的小写字母。
例: A:45H('E')→65H('e')
2.3 将 A 中数据(<=9)的平方存至 B 中
( 利用 XLAT 指令 )。
例: A:6→B:24H(36)
2.4 将一个压缩的 BCD 数转换成相应的 ASCII 码。
例: 56H→35H('5'),36H('6')
2.5 有一种加密方法是首先在被加密的所有符号中建立其一一对应的符号,例如:
0 - 2 , 1 - 7 , 2 - 1 , 3 - 6
, 4 - 9
5 - 0 , 6 - 8 , 7 - 3 , 8 - 4
, 9 - 5
然后将数据进行变换后存储, 即当源数是
6 时,保存的数据是 8,这样就可以达到保密的效果。试编一程序完成十六进制数的加密和解密程序。
2.6 完成分别将两个压缩 BCD 数据和非压缩 BCD 数据相加的程序 (加数和被加数及和小于9999 )。
2.7 完成两个 32 位数的乘法程序。
例: 01234567H*89ABCDEFH=A39DC94E4629H
2.8 利用串操作指令完成两串数据的比较, 结果用
RESULT 单元为 00H 和 0FFH 表示相同或不相同。
例: String1:ABC, String2:ABC 则
RESULT:00H
String1:ABC, String2:ADC 则 RESULT:0FFH
2.9 利用串操作指令统计以 "$"
( ASCII 码为 24H )为结束的字符串中字符的个数。
例:String:STUDY$
则 RESULT:5
2.10 按本实验要求,自编一程序。
五. 实验原理:
简单程序是构成复杂程序的基础。简单程序又称顺序程序,顾名思意,就是为完成一简单的目的,采用一串指令序列,按顺序逐条执行。在简单程序执行过程中,每条指令只执行一次,同时由于没有转移,一般不考虑对标志的影响。
象所有汇编程序设计一样,编程前,应考虑如何分配 CPU 中的寄存器和内存中单元等,要考虑到指令本身的特点和要求分配寄存器,例如,如果希望使用乘法指令进行乘法,根据指令的要求,必须要使用
AL 或 AX 作为被乘数,在这种情况下,AL 或 AX 就必须考虑为存放被乘数,当然,乘积应该是放在AX 或 DX:AX 中。