1、汇编语言中的循环程序设计实验目的: 掌握循环程序设计的基本方法。主要掌握几种基本的循环程序设计技巧,如计数法程序设计、当循环、直到循环等程序设计技术。 实验内容:(任选其二) 主要实验实例: 1.用多种循环方法实现1+2+3+20的程序(至少二种方法); 2.将寄存器AX中的2#数用16#形式显示出来; 3.将内存中的数据块中(BUFF为起始地址)奇数和偶数分别存入以ADDR1和ADDR2开始的存储块中,并分别统计其中的奇、偶数,将统计结果存放在RESULT开始的两个字存储单元中; 4.不利用乘法指令实现乘法的程序; 5.对在附加段中的首地址为LIST的字数组进行从大到小的排序; 6.对给定数
2、组和给定数,编制程序来确定数组中是否有给定数的值,如有则从数组中删除之; 7.对给定数组和给定数(设数组是有序数组),试将给定数插入给定数组中相应位置。 实验准备: 汇编语言下的循环程序设计基本技术和指令系统。循环程序设计的基本结构和问题表示方法。 实验步骤: (1) 完成源程序设计任务,并准备好测试用例,分析其可能的测试结果; (2) 上机运行和测试所写的程序; (3) 进行实验分析; (4) 编写实验报告。 实验结果: 3.将内存中的数据块中(BUFF为起始地址)奇数和偶数分别存入以ADDR1和ADDR2开始的存储块中,并分别统计其中的奇、偶数,将统计结果存放在RESULT开始的两个字存储
3、单元中; 代码: 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 buffsi,0001h je L2 mov ax,buffsi mov addr2bx,ax
4、 add si,2 add bx,2 inc dl dec cx jmp L1 L2: mov ax,buffsi mov addr1di,ax add di,2 add si,2 inc dh dec cx jmp L1 mov si,0 mov byte ptr resultsi,dh add si,2 mov byte ptr resultsi,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 2 / 2