汇编语言及应用——循环结构程序设计

一、 实验目的

熟悉程序框架;理解单重循环与多重循环程序的结构及执行过程;掌握循环控制指令的用法,会使用数据串操作指令编程;熟练掌握循环结构程序的设计方法和利用设置断点调试程序的方法。

二、 示例

编写一子程序,把数据段中1维数组AA_1变量地址中连续7个数(1,3,5,7,2,4,6)读出,把每个数加2后再存入到数据段中BB_1数组开始的标号地址中去,并显示出BB_1数组中每个数来(之间用空格分开)

DATA  SEGMENT
    ORG 0100H
  AA_1 DB     1,3,5,7,2,4,6		//定义七个数
    ORG 0150H
  BB_1 DB     7 dup(?)	//计数为7
COUNT  DW     7
DATA  ENDS
CSEG  SEGMENT
      ASSUME CS:CSEG,DS:DATA	//将CSEG和DATA分别放在CS和DS中
START:MOV    AX,DATA
      MOV    DS,AX		//间接将DATA送入DS
      MOV    CX,COUNT	//CX中保存计数COUNT
      LEA    SI,AA_1      
      LEA    DI,BB_1     //将储存单元AA_1和BB_1分别送给SI和DI
LP1:  MOV    AL,[SI]      
      ADD    AL,2       
      MOV   [DI],AL       //利用AL将SI中的数加2后放到DI中
      INC SI            
      INC DI           //将SI和DI的地址加1,指向下一个待操作的数
      LOOP  LP1      //循环LP1
      LEA   SI,BB_1    //将BB_1储存单元中的数放进SI中
      MOV CX,COUNT		//将COUNT中的数送给CX,用来计数
DISP: MOV  DL,[SI]		//定义一个变量DISP
ADD  DL,30H     	//将DL中的数加上30H后放进DL
MOV    AH,  02    
INT    21H     	//显示输出
MOV   DL, ‘ ’     //将空格赋给DL
      MOV   AH,  2   	
      INT   21H    	//显示输出
      INC   SI		//将SI的地址加1,指向下一个待操作的数
      LOOP  DISP     循环DISP过程
      MOV   AH,4CH   
      INT    21H	//结束
CSEG  ENDS
      END    START

运行截图:
在这里插入图片描述

三、 实验题

  1. 试编制一个程序把AX中的16进制数转换为ASCII码,并将对应的ASCII码依次存放到MEM数组中的四个字节中。例如,当(AX)=2A49H时,程序执行完后,MEM中的4个字节内容为39H,34H,41H,32H。
    代码:
DATA SEGMENT
     MEM DB 4 DUP(?)
DATA ENDS
CODE SEGMENT
   ASSUME CS:CODE,DS:DATA
MAIN PROC FAR
     MOV AX,DATA
	 MOV DS,AX
	 MOV AX,2A49H
	 MOV CX,4
	 MOV DI,3
  L1:PUSH CX
     MOV CL,4
     ROL AX,CL
	 MOV BX,AX
	 AND BX,0FH
	 ADD BX,30H
	 CMP BX,3AH
	 JB L2
	 ADD BX,7
 L2:MOV MEM[DI],BL
    DEC DI
	POP CX
	LOOP L1
    MOV AH,4CH
	INT 21H
MAIN ENDP
CODE ENDS
     END MAIN

在这里插入图片描述

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值