- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编语言中循环程序设计
实验目的:
掌握循环程序设计的基本方法。主要掌握几种基本的循环程序设计技巧,如计数法程序设计、当循环、直到循环等程序设计技术。
实验内容:(任选其二)
主要实验实例:
1.用多种循环方法实现1+2+3+…+20的程序(至少二种方法);
2.将寄存器AX中的2#数用16#形式显示出来;
3.将内存中的数据块中(BUFF为起始地址)奇数和偶数分别存入以ADDR1和ADDR2开始的存储块中,并分别统计其中的奇、偶数,将统计结果存放在RESULT开始的两个字存储单元中;
4.不利用乘法指令实现乘法的程序;
5.对在附加段中的首地址为LIST的字数组进行从大到小的排序;
6.对给定数组和给定数,编制程序来确定数组中是否有给定数的值,如有则从数组中删除之;
7.对给定数组和给定数(设数组是有序数组),试将给定数插入给定数组中相应位置。
实验准备:
汇编语言下的循环程序设计基本技术和指令系统。循环程序设计的基本结构和问题表示方法。
实验步骤:
(1) 完成源程序设计任务,并准备好测试用例,分析其可能的测试结果;
(2) 上机运行和测试所写的程序;
(3) 进行实验分析;
(4) 编写实验报告。
实验结果:
3.将内存中的数据块中(BUFF为起始地址)奇数和偶数分别存入以ADDR1和ADDR2开始的存储块中,并分别统计其中的奇、偶数,将统计结果存放在RESULT开始的两个字存储单元中;
代码:
data segment
buff dw 6,35,99,17,80,69,50,33
addr1 dw 8 dup(?)
addr2 dw 8 dup(?)
result dw 0,0
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov cx,8d
mov si,0 ;clear si
mov di,0 ;clear di
mov bx,0
mov dx,0
L1:
test buff[si],0001h
je L2
mov ax,buff[si]
mov addr2[bx],ax
add si,2
add bx,2
inc dl
dec cx
jmp L1
L2:
mov ax,buff[si]
mov addr1[di],ax
add di,2
add si,2
inc dh
dec cx
jmp L1
mov si,0
mov byte ptr result[si],dh
add si,2
mov byte ptr result[si],dl
code ends
end start
运行结果:
4.不利用乘法指令实现乘法的程序;
代码:
data segment
x dw 30d
y dw 10d
data ends
code segment
assume cs:code,ds:data
start:
push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
mov cx,x
mov bx,y
mov ax,0
L1:
add ax,bx
loop L1
mov dx,ax
mov ah,2
int 21h
code ends
end start
文档评论(0)