汇编六、汇编举例_循环语句怎么写?

注:使用Keil环境。

1、将30H~3FH的数放到50H~5FH地址中

1.1、采用直接寻址+寄存器寻址方式

	;将30H-3FH地址中的数据放到地址50H-5FH中
	MOV A,    0x30    ;把0x30这个地址中的值赋值给寄存器A,直接寻址
	MOV 0x50, A       ;把寄存器A中的值赋值给地址0x50,寄存器寻址
	
	MOV A,    0x31   
	MOV 0x51, A  
	
	MOV A,    0x32   
	MOV 0x52, A
	
	MOV A,    0x33   
	MOV 0x53, A
	;......
	MOV A,    0x3E   
	MOV 0x5E, A
	
	MOV A,    0x3F   
	MOV 0x5F, A

1.2、采用直接寻址

MOV direct1,direcct2    ;两个直接地址可以进行数据的传递。

	;将30H-3FH地址中的数据放到地址50H-5FH中
	MOV 0x50,  0x30    ;把0x30地址中的值赋值给0x50地址,直接寻址
	MOV 0x51,  0x31    
	MOV 0x52,  0x32    
	MOV 0x53,  0x33    
	;......
	MOV 0x5E,  0x3E    
	MOV 0x5F,  0x3F 

1.3、采用循环语句

(1)包括循环体赋初值改变初值比较判断

(2)MOV direct1,direct2    ;将direct2地址中的数据赋值给direct1地址

        direct1和direct2表示地址,需要改变,表示0x30-0x3F和0x50-0x5F

(3)MOV @R0,@R1

  • 把R1中的数据取出,当作一个地址,把地址中存储的值 赋值给   R0中的数据表示的地址
  • @后面跟的寄存器只能是R0或R1
  • MOV @R0,@R1这种语句是不存在的,用如下两条语句代替
  • MOV A,@R1    ;把R0中的数据取出,当作一个地址,把地址中的数据赋值给寄存器A

    MOV @R0,A    ;把寄存器中的数 赋值给 R0寄存器存储的数,把这数当作的地址

(4)程序

	;将30H-3FH地址中的数据放到地址50H-5FH中
	
	;赋初值
	MOV R1, #0x30    ;将立即数0x30赋值给R1寄存器
    MOV R0, #0x50    ;将立即数0x50赋值给R0寄存器
	
	
L_Loop:
    ;循环体
    MOV A,   @R1    ;把R1中的数据取出,当作一个地址,把地址中的数据赋值给寄存器A   
    MOV @R0, A      ;把寄存器A中的数 赋值给 R0寄存器存储的数表示的地址
	 
	;改变初值
    INC R1          ;R1寄存器中的值加1
    INC R0          ;寄存器R0中的值加1
	 
	;比较判断 
    CJNE R1,#0x40,L_Loop    ;立即数0x40与寄存器R1的值相比较,不相等则跳转到L_Loop处
	
	END

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码织梦师小猪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值