汇编语言上机试验指导
实验一 汇编语言程序设计的实验环境及上机步骤

实验一熟悉汇编语言程序设计的实验环境及上机步骤一、实验目的:1、掌握文本编辑程序EDIT的基本使用方法。
2、熟练掌握汇编语言上机操作的基本步骤,学会汇编语言程序的编辑、汇编、连接、运行等操作方法。
二、上机实验指导(一)实验环境1.硬件环境微型计算机(Intel x86系列CPU)一台2. 软件环境⏹Windows98/2000/XP操作系统⏹文本编辑器(NOTEPAD(记事本))⏹汇编程序(MASM.EXE)⏹连接程序(LINK.EXE)(二)上机实验步骤上机步骤总结如下:1.把汇编程序拷贝到 C:\ASM\2.用记事本建立ASM源程序,保存为C:\ASM\HELLO.ASM3.汇编 C:\ASM>MASM HELLO.ASM<回车>4.链接C:\ASM>LINK HELLO.OBJ<回车>5.执行C:>ASM>HELLO〈回车〉下面详细介绍上机步骤:1.确定源程序的存放目录建议源程序存放的目录名为ASM(或MASM),并放在C盘或D盘的根目录下。
创建方法:找到C盘的根目录,在C盘的根目录窗口中点击右键,在弹出的菜单中选择“新建”→“文件夹”,并把新建的文件夹命名为ASM。
请把MASM.EXE、LINK.EXE都拷贝到此目录中。
2.建立ASM源程序使用NOTEPAD(记事本)文本编辑器建立ASM源程序。
打开记事本,输入源程序后,保存为后缀为.ASM的文件,保存路径为C:\ASM\HELLO.ASM。
3.用MASM.EXE汇编源程序产生OBJ目标文件具体操作如下:在DOS命令提示符窗口中操作选择“开始”→“程序”→“附件”→“命令提示符”,打开DOS命令提示符窗口,然后用CD命令转到源程序目录下,接着输入MASM命令:C:\Documents and Settings>cd..(回车,退回到上一级根目录)C:>CD ASM<回车>C:\ASM>MASM HELLO.ASM<回车>操作时的屏幕显示如图2所示。
80868088汇编语言上机调试与实验指导

2、DEBUG的常用命令
1)显示、修改寄存器命令 R
格式:R[寄存器名]
功能:若给出寄存器名,则显示该寄存器的内容并可进行修改。缺省寄存器名,则按以下格式显示所有寄存器的内容及当前值(不能修改)。
AX=0000 BX=0004 CX=0020 DX=0000 SP=0080 BP=0000 SI=0000
8)指定文件命令 N
格式:N<文件名或扩展名>
功能:指定即将调入内存或从内存写入磁盘的文件名。该命令应该用在L命令和W命令之前。
9)装入命令 L
格式1:L[起始地址][盘符号][扇区号][扇区数]
1、编辑软件
行编辑软件:
全屏编辑软件:WPS、、、WORD、PE等。
当输入、建立和修改源程序时,可任选一种编辑软件,不要用格式控制符,要求编辑完成的文件扩展名一定是.ASM。
2、汇编程序
有汇编ASM.EXE、宏汇编MASM.EXE及TASM等,一般使用宏汇编MASM.EXE,因它比ASM.EXE功能强。TASM适用于8086/8088~Pentium系列指令系统所编写的汇编语言程序,是比较先进的汇编工具。
Microsoft(R) Macro assemble Version 5.00
Copyright(C) Microsoft Corp 1981-1985,1987 ALL rights reserved
Run file [<file>.EXE]:
List File [nul.map]:
4)汇编命令 A
格式:A[起始地址]
功能:将输入源程序的指令汇编成目标代码并从指定地址单元开始存放。若缺省起始地址,则从当前CS:100地址开始存放。A命令按行汇编,主要是用于小段程序的汇编或对目标程序的修改。
汇编语言上机实验指导书(不含源代码)

汇编语言上机实验指导书一、概述上机实验总学时为14学时,其中综合性实验为2学时。
实验共有6项暂定为7次,每次2学时。
1.实验辅导的主要内容实验辅导的内容包括每个实验的实验目的;实验内容;对实验的算法及实验方法的必要说明;实验准备;实验步骤;实验报告要求;实验程序及参考框图。
开始的实验介绍较细,后面的实验简要介绍。
2.实验的软硬件要求关于汇编语言程序设计的硬件要求不高,有IBM-PC/XT即可,但应有彩色显示器以便进行图形实验。
软件方面应有MASM.EXE5.0版(包括LINK.EXE),与MS-DOS版本配套的DEBUG程序和EDIT.EXE编辑软件(其它编辑软件也可以)。
3.加强实践能力的培养实验目的不光是为了验证书本理论,更重要的是对实践能力的培养。
其中包括:实际调试程序的能力,例如修改程序参数的能力,查看结果的能力,设置断点调试运行的能力等;开发汇编语言应用程序的能力,例如应用有关汇编软件的能力,进行系统调用和BIOS功能调用的能力,进行模块程序设计的能力等。
对某一问题用不同的程序实现的能力,例如我们为每个实验提供了参考程序(或程序段),目的是让每个实验者参照样板程序将实验成功地实现,在掌握其方法后,自己改变程序或自己编制程序加以实现。
实验一汇编语言运行环境及方法、简单程序设计(2学时、验证性)1.实验目的:(1) 熟悉汇编语言运行环境和方法(2)了解如何使用汇编语言编制程序(3) 熟悉DEBUG有关命令的使用方法(4) 利用DEBUG掌握有关指令的功能(5) 利用DEBUG运行简单的程序段2.实验内容(1)学会输入、编辑汇编语言程序(2)学会对汇编语言程序进行汇编、连接和运行(3)进入和退出DEBUG程序(4)学会DEBUG中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。
对于U命令、N命令、W命令等,也应试一下。
3.实验准备(1)仔细阅读有关汇编语言环境的内容,事先准备好使用的例子。
汇编语言上机实验指导书

《汇编语言》实验指导书计算机实验中心目录目录::实验一利用DEBUG调试程序调试程序段 (4)实验二分支程序实验 (5)实验三循环程序实验 (8)实验四子程序实验(一) (9)实验五子程序实验(二) (13)实验六字符处理程序实验 (19)实验七输入输出实验 (23)试验八中断程序试验 (28)汇编语言上机实验指导书一、概述上机实验总学时为18学时,其中综合性和设计性实验至少为8学时。
实验的次数暂定为8次,每次2-3学时,可结合实际条件适当增减,但不少于6次。
1.实验辅导的主要内容实验辅导的内容包括每个实验的实验目的;实验内容;对实验的算法及实验方法的必要说明;实验准备;实验步骤;实验报告要求;实验程序及参考框图。
开始的实验介绍较细,后面的实验简要介绍。
2.实验的软硬件要求关于汇编语言程序设计的硬件要求不高,有IBM-PC/XT即可,但应有彩色显示器以便进行图形实验。
软件方面应有MASM.EXE5.0版(包括LINK.EXE),与MS-DOS版本配套的DEBUG 程序和EDIT.EXE编辑软件(其它编辑软件也可以)。
3.加强实践能力的培养实验目的不光是为了验证书本理论,更重要的是对实践能力的培养。
其中包括:实际调试程序的能力,例如修改程序参数的能力,查看结果的能力,设置断点调试运行的能力等;开发汇编语言应用程序的能力,例如应用有关汇编软件的能力,进行系统调用和BIOS 功能调用的能力,进行模块程序设计的能力等。
对某一问题用不同的程序实现的能力,例如我们为每个实验提供了参考程序(或程序段),目的是让每个实验者参照样板程序将实验成功地实现,在掌握其方法后,自己改变程序或本分改变程序加以实现。
实验一利用DEBUG调试程序调试程序段1.实验目的:(1)熟悉DEBUG有关命令的使用方法(2)利用DEBUG掌握有关指令的功能(3)利用DEBUG运行简单的程序段2.实验内容(1)进入和退出DEBUG程序(2)学会DEBUG中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。
汇编实验指导新(实验一)

汇编语言程序设计实验指导实验一汇编语言程序设计上机及debug的使用一、实验目的及要求1.学会使用EDIT、MASM、LINK、DEBUG等软件工具。
2.熟练掌握在计算机上建立、汇编、连接、调试及运行程序的方法。
二、实验内容(一) 上机过程1.汇编语言源程序的上机环境硬件环境:目前8086汇编语言程序一般多在IBM PC/XT及其兼容机上运行,因此要求机器具有一些基本配置就可以了,汇编语言对机器硬件环境没有特殊要求。
软件环境:软件环境是指支持汇编语言程序运行和帮助建立汇编语言源程序的一些软件。
编写MASM程序至少需要三个工具,一个是用来准备源文件的文本编辑程序,一个是用来将源文件转换成目标文件的MASM汇编程序,最后一个是用来将多个目标文件连接成一个DOS可执行文件的LINK连接程序。
(1)进入DOS操作系统:汇编语言程序的建立和运行在DOS操作系统支持下进行,要首先进入MS-DOS状态:点击开始菜单/运行在打开提示框中输入cmd再回车cd\apps\masm回车(2)编辑程序:编辑程序是用来输入和建立汇编语言源程序的一种通用的系统软件,通常源程序的修改也是在编辑状态进行的。
编写汇编语言程序的第一步,就是用文本编辑程序编写源文件。
源文件的编写可以利用任何一种文本编辑程序完成,具体使用哪一种,完全取决于个人喜好。
比如,记事本、、WORDSTAR、、等,但要注意,除了注释的内容外,一定要在非文本方式下输入各种语句和间隔符号,否则会汇编出错。
如:Edit abc.asm回车源程序以asm作文件名后缀。
Microsoft公司在推出MASM6.0的同时也提供了优秀的全屏幕文本编辑程序,作为PWB(程序员工作平台)的组成部分。
该编辑程序支持下拉式菜单、鼠标,并可根据用户特定需求进行裁剪。
(3)汇编程序:8086的汇编程序有基本汇编ASM.EXE和宏汇编MASM.EXE两种。
基本汇编ASM.EXE不支持宏操作,因此,一般选用宏汇编MASM.EXE。
汇编上机实验报告

汇编上机实验报告实验目的:通过进行汇编语言上机实验,掌握汇编语言的基本语法和编程技巧,培养汇编程序设计能力。
实验内容:实验一:汇编程序的简单输入输出1.编写一个汇编程序,要求从键盘输入两个整数,然后将其相加,并将结果输出到屏幕上。
2. 利用调试器(如DOSBox或emu8086)执行并调试程序,观察程序运行过程和实际输出结果。
实验二:汇编程序的条件跳转1.编写一个汇编程序,要求从键盘输入一个整数,判断其是否大于10,若是,则将其打印到屏幕上;否则,将其乘以5并打印到屏幕上。
2. 利用调试器(如DOSBox或emu8086)执行并调试程序,观察程序运行过程和实际输出结果。
实验三:汇编程序的循环1.编写一个汇编程序,要求计算1到10的累加和,并将结果打印到屏幕上。
2. 利用调试器(如DOSBox或emu8086)执行并调试程序,观察程序运行过程和实际输出结果。
实验四:汇编程序的数组操作1.编写一个汇编程序,要求定义一个长度为10的数组,并将数组中的值初始化为0,然后利用循环将数组中的每一个元素加1,并将每个元素的值打印到屏幕上。
2. 利用调试器(如DOSBox或emu8086)执行并调试程序,观察程序运行过程和实际输出结果。
实验结果:实验一:汇编程序的简单输入输出编写的汇编程序通过键盘输入两个整数,实现了相加并将结果输出到屏幕上的功能。
程序运行正常,输出结果与预期一致。
实验二:汇编程序的条件跳转编写的汇编程序通过键盘输入一个整数,根据条件判断,实现了将输入数大于10时打印在屏幕上,否则将其乘以5并打印在屏幕上的功能。
程序运行正常,输出结果与预期一致。
实验三:汇编程序的循环编写的汇编程序通过循环计算1到10的累加和,并将结果打印在屏幕上。
程序运行正常,输出结果与预期一致。
实验四:汇编程序的数组操作编写的汇编程序通过定义一个长度为10的数组,并将数组中的值初始化为0,利用循环将数组中的每一个元素加1,并将每个元素的值打印到屏幕上。
汇编语言上机指导

汇编语言上机指导实验一DEBUG常用命令及8086指令使用实验目的:通过实验掌握下列知识:1、8086指令: MOV,ADD,ADC,SUB,SBB,DAA,XCHG2、DEBUG命令: A,D,E,F,H,R,T,U。
3、ASCII码及用16进制数表示二进制码的方法。
4、8086寄存器: AX,BX,CX,DX,F,IP。
内容及步骤:一、DEBUG 命令使用:1、打 DEBUG 进入 DEBUG 控制,显示提示符 '_ '。
2、用命令 F100 10F 'A' 将'A'的ASCII码填入内存。
3、用命令 D100 10F 观察内存中的16进制码及屏幕右边的ASCII 字符。
4、用命令 F110 11F 41 重复上二项实验,观察结果并比较。
5、用命令E100 30 31 32 …… 3F将30H-3FH写入地址为100开始的内存单元中,再用D命令观察结果,看键入的16进制数是什么字符的ASCII码?6、用H命令检查下列各组16进制数加减结果并和你的手算结果比较:(1)34H,22H (2)56H,78H (3)A5,79H (4)1284H,5678H (5)A758,347FH7、用R 命令检查各寄存器内容,特别注意AX,BX,CX,DX,IP及标志位中ZF,CF和AF的内容。
8、用R命令将AX,BX内容改写为1050H及23A8H。
二、8086常用指令练习1、传送指令1)用A命令在内存100H处键入下列内容:MOV AX,1234MOV BX,5678XCHG AX,BXMOV AH,35MOV AL,48MOV DX,75ABXCHG AX,DX2)用U命令检查键入的程序并记录,特别注意左边的机器码。
3)用T命令逐条运行这些指令,每运行一行检查并记录有关寄存器及IP的变化情况。
并注意标志位有无变化。
2、加减法指令:1)用A命令在内存100H处键入下列内容:MOV AH,34MOV AL,22ADD AL,AHSUB AL,78MOV CX,1284MOV DX,5678ADD CX,DXSUB CX,AXSUB CX,CX2)用U命令检查键入的程序及对应的机器码。
汇编语言上机指导

汇编语言上机指导一、概述汇编语言是一种低级别的程序设计语言,它直接使用计算机的指令集架构来编写程序。
而在进行汇编语言的实际操作时,上机指导是必不可少的一环。
本文将为您提供一份汇编语言上机指导,以帮助您在实践中更好地掌握汇编语言的应用。
二、实验环境与所需工具在进行汇编语言的上机实验之前,您需要准备以下工具和环境:1. 计算机:一台能够运行汇编语言开发环境的计算机;2. 汇编语言开发环境:例如MASM、NASM等;3. 文本编辑器:用于编写汇编源代码的工具,例如Notepad++、Sublime Text等;4. 模拟器或调试器:用于模拟或调试汇编程序的工具,例如DOSBox、Emu8086等。
三、实验步骤1. 安装汇编语言开发环境:根据您选择的汇编语言开发环境,下载并安装相应的软件。
2. 创建汇编源代码文件:使用文本编辑器创建一个新的文本文件,并将其保存为.asm文件格式。
3. 编写汇编程序:根据实验要求或题目要求,使用汇编语言编写相应的程序代码。
在编写过程中,需要熟悉所选汇编语言的语法和指令集。
4. 保存源代码文件:在编写完成后,保存源代码文件,并注意文件的命名规范和格式要求。
5. 编译源代码:打开所选汇编语言开发环境,并将源代码文件导入到该环境中。
使用编译器将源代码文件转换为可执行文件。
6. 运行汇编程序:在模拟器或调试器中加载生成的可执行文件,并运行程序。
通过观察程序的运行结果,验证程序代码的正确性和准确性。
7. 调试程序:如果程序在执行过程中出现错误或异常,可以使用调试器来逐步调试程序,找出错误的原因,并进行修正。
8. 优化程序:经过测试和调试后,可以根据实验需求对程序进行优化或改进,提高程序的性能和效率。
9. 文档整理:在上机实验结束后,对实验过程、实验结果和实验心得进行文档整理。
将实验相关的代码、截图和注释整理成文档,并附上你的实验心得和体会。
四、注意事项1. 在编写汇编程序时,需要遵循所使用汇编语言的语法和规范,注意标识符的命名规则和字符集的使用限制。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
作实验2 【1】.有空加作实验【4】(1).实验2 算术及位串处理程序【1】.在数据段预先存放16个十六进制数的ASCII码,把BX中的四位十六进制数,从左到右用查表的方法找到对应数位的ASCII码,并取出显示出来。
要求见书:参考程序:data segmentasc db 30h,31h,32h,33h,34h,35h,36h,37h,38h,39hdb 41h,42h,43h,44h,45h,46hdata endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov cl,4rol bx,clmov si,bxand si,0fhmov dl,[asc+si]mov ah,2int 21hrol bx,clmov si,bxand si,0fhmov dl,[asc+si]mov ah,2int 21hmov ah,4chint 21hcode endsend start【2】用字符串处理指令编制程序,处理字符串的比较和查找,显示结果。
要求:(1) 字符串的比较程序中,一个字符串在数据段定义,另一个字符串在程序执行时从键盘输入,必须定义键盘缓冲区。
并指出不相等的位置。
参考书上例3.51,题目改为MESS2 定义为从键盘输入缓冲区,键盘输入缓冲区定义:mess2 DB 9,?,9 DUP(?)例3.51 在数据段中有一个长度为19的字符串MESS1,在附加段中有一个长度为19的字符串MESS2,比较它们是否相等。
若相等显示‘Y’,否则显示‘N’。
编制程序如下所示。
data segmentmess1 db ‘computer software $’data endsext segmentmess2 db ‘comkuter software $’ext endscode segmentassume cs:code,ds:data,es:extstart:mov ax, datamov ds, axmov ax, extmov es, axlea si, mess1lea di, mess2mov cx, 19cldrepe cmpsbjz yes ;如果zf=1跳转到标号yesmov dl,‘n’jmp disp ;跳转到标号dispyes: mov dl,‘y’disp:mov ah,2int 21hmov ah, 4chint 21hcode endsend start实验3 分支程序设计实验目的:掌握分支与循环程序等基本编程方法。
熟悉数制转换。
用LOOP指令、条件转移指令和跳跃表法实现程序转移。
实验内容:【1】分离字数组ARRAY中的正、负数,把其中的正数复制到PDATA数组;负数复制到NDATA数组,并分别统计正、负数个数。
要求:三个数组的占用单元数应一致。
通过DEBUG跟踪程序的执行,检查运行结果:是否完成分离。
参考程序:data segmentarray dw 2,-2,3,-3,4,-4,5,0,0org 10hpdata dw 7 dup (?)org 20hndata dw 7 dup (?)org 30hp db 0n db 0data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axlea bx,arraylea si,pdatalea di,ndatamov cx,7kk:mov ax,[bx]test ax,8000hjz zs。
jmp nextzs:。
next:add bx,2loop kkmov dl,padd dl,30hmov ah,2int 21hmov dl,nadd dl,30hmov ah,2int 21hmov ah,4chint 21hcode endsend start【2】在数据段定义分支地址表,通过键盘输入数字1~8,实现转移。
要求:(1) 分支表定义如下:PTABLE DW P1,P2,P3,P4,P5,P6,P7,P8(2) P1~P8为标号,如果键盘输入数字3,则从分支地址表PTABLE中取出P3的地址,实现间接转移,标号处的指令只是显示一个信息。
参看例5.3例5.3根据键盘输入的一位数字(0~3),使程序转移到4个不同的分支中去。
算法分析:建立一个地址表,集中存放4个分支的偏移地址,因偏移地址为16位,所以每两个字节存放一个偏移地址。
根据输入的数字指向地址表,从地址表中取出对应分支的偏移地址,以间接寻址方式转向对应分支。
例5.3程序如下:code segmentassume cs:code,ds:codestart: mov ax,code ;ds=csmov ds,axmov ah,7 ;键盘输入无回显int 21hcmp al,30hjl exit ;非法输入cmp al,33hjg exit ;非法输入mov dl,al ;放入dl,待显示mov ah,2sub al,30h ;转换ascii码为数值shl al,1 ;(al)×2,指向地址表中某地址mov bl,almov bh,0jmp branch[bx] ;转向分支rout0: int 21h ;显示键盘输入的数字jmp exitrout1: int 21hjmp exitrout2: int 21hjmp exitrout3: int 21hjmp exitexit: mov ah,4ch ;程序终止并退出int 21hbranch dw rout0dw rout1dw rout2dw rout3code endsend start该程序在代码段的最后定义了地址表,汇编程序进行汇编时,各标号的有效地址可以确定,地址表首地址BRANCH的有效地址可以确定,其后定义的4个字的值就是四个分支标号的有效地址。
该程序也可以定义一个数据段,并把地址表BRANCH定义在数据段。
用地址表方法处理多分支程序,可以简单直接地实现分支的转移,避免了大量的比较和条件转移指令,使程序显得简洁紧凑。
实验4 循环程序设计实验目的:掌握和提高循环程序编程技巧,熟悉键盘输入、显示输出等基本人机交互。
【1】从键盘输入7位二进制数,显示对应的字符,回车键退出循环,终止程序。
参考程序:code segmentassume cs:codestart:mov cx,7mov dl,0next:shl dl,1mov ah,1int 21h。
loop nextmov ah,2int 21hmov ah,4chint 21hcode endsend start【2】从键盘输入一个单个字符,显示该字符的ASCII码(十六进制),回车键退出循环,终止程序。
DEBUG下跟踪,注意结果。
参看例5.7,程序的核心是斜体部分,要求修改程序中的斜体部分,当然其它关联部分也需修改。
例5.7 从键盘输入一个单个字符,显示该字符的ASCII码(十六进制),回车键退出循环,终止程序。
算法分析:用1号功能调用从键盘输入一个单个字符时,该字符ASCII码在AL中,为两位十六进制数,而要显示这两位十六进制数,则要把每位十六进制数位转换成ASCII码才能用2号功能调用显示。
高位十六进制数位为数字,低位十六进制数位为数字或A~F。
该循环程序的循环终止条件是输入回车键。
流程图如图5.7所示:图5.7 例5.7流程图例5.7程序如下:code segmentassume cs:codestart: mov ah,1 ;输入字符int 21hcmp al,13je exit ;回车键则退出循环mov bl,al ;保存到BLmov cl,4 ;把2位十六进制数转换成的2个ascii码shl bx,cland bx,0f00hadd bh,30hand al,0fhadd al,30hmov ah,0cmp ax,39hjle l2l1:add ax,7l2:add bx,axmov dl,bh ;显示高位ascii码mov ah,2int 21hmov dl,bl ;显示低位ascii码mov ah,2int 21hjmp start;转循环入口exit:mov ah,4chint 21hcode endsend start实验5 子程序设计实验目的:掌握通用子程序的设计方法,合理划分子程序功能和正确进行子程序的参数传递。
【1】采用通过地址表传递参数地址的方法,求数组元素累加和的通用子程序。
该通用子程序能处理字节类型或字类型的数组元素。
参看例6.5例6.5采用通过地址表传递参数地址的方法,求数组元素累加和的通用子程序(不考虑溢出)。
data segmentary dw 100 dup(4) ;设元素值是4num dw 100 ;设元素个数是100sum dw ?table dw 3 dup(?) ;地址表3个字data endscode segmentassume cs:code,ds:datamain proc farpush dsxor ax,axpush axmov ax,datamov ds,axmov table, offset ary ;ary地址送table mov table+2, offset num ;元素个数的地址送table+2mov table+4, offset sum ;存放和的地址送table+4 lea bx, table ;table的首地址送bxcall prosumretmain endp;------------------------prosum proc nearmov si, [bx] ;ary地址送si mov di, [bx+2] ;取元素个数的地址mov cx,[di] ;元素个数送cxmov di,[bx+4] ;存放和的地址送dixor ax, axnext: add ax, [si]add si, 2loop nextmov [di], axretprosum endpcode endsend main程序中在数据段建立一个三个字的地址表TABLE,主程序把数组ARY的三个参数的地址依此放入地址表TABLE中,并把地址表TABLE的首地址放入BX寄存器。
子程序PROSUM通过BX寄存器间接取得数组ARY的首地址、元素个数和存放累加和的地址,实现数组元素的累加。
由于子程序中没有出现具体的数组参数,所以对其它数组求和也是可行的。
但该程序只能处理字类型的数组元素,如果希望子程序PROSUM也能处理字节类型的数组元素,那么可以增加一个公用的类型参数,类型参数可用一个变量也可用一个常量说明。