51汇编:做十六进制数的循环移位

版权声明:如有引用,请附上本文链接 https://blog.csdn.net/weixin_41374099/article/details/89047266

安利汇编做入门的第一门语言

感觉汇编还挺好玩的。
虽然现在手上会用的、用到的指令都很少,所以常受限制。但是这个汇编做任务和游戏一样,特别有趣。我觉得,初学编程的孩子就应该以学汇编起步。

51汇编中的循环移位只是操作累加器A,而累加器A只有8个比特。所以一次循环移动只能移动一个字节。为了实现16进制的循环移位,需要稍微复杂一点。

不管是多少个字节的移位,步骤都差不多。
以循环左移举例,先移动低的字节的数据,在逐步移动高的字节的数据。最后,把高字节的移位后的进位赋值给最低字节的最低位。
在这里插入图片描述

	org 0000h
	ljmp main
main:
	mov dptr,#0c5b0h
	;DPH 1100 0101
	;DPL 1011 0000
	mov a,dpl
	clr c
	rlc a
	mov dpl,a ;0110 0000
	mov a,dph
	rlc a
	mov dph,a  ;1000 1011
	clr a
	addc a,#0  ;a=0+0+c
	orl a,dpl
	mov dpl,a ;0110 0001

	end





通过调试一步步看结果是什么。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41374099/article/details/89047266