汇编语言程序分析

汇编语言程序分析,第1张

ORG 1000H//搏大清从地址1000H开始执行

BUF DB 12H //定义一个叫BUF的变量,赋初值为12

LEA BX,BUF//把BUF的地址送到BX里面去

MOV CX,BX //BX的值放入CX

LOP: ADD BX,2 //BX值加2。注:LOP是标识,循环跳转用

LOOP LOP//循仿竖环跳转到LOP处执行。循环次数取决于CX的值

HLT

执行结果:BX = 3000.

因为第三句中将BUF的偏移地址给了BX,而BUF的偏移地基前址是1000,所以BX和CX的初始值都是1000。循环中BX只能累加1000次,所以就是3000了。

0000 7812MOV R0, #12H

0002 7934MOV R1, #34H

0004 E4 CLR A

0005 FA MOV R2, A

0006 7F04MOV R7, #04H

0008 C3 CLR C

0009 E8 MOV A, R0

000A 33 RLC A

000B F8 MOV R0, A

000C E9 MOV A, R1

000D 33 RLC A

000E F9 MOV R1, A

000F EA MOV A, R2

0010 33 RLC A

0011 FA MOV R2, A

0012 DFF4DJNZ R7, 0008H

0014 80FESJMP $

程序功能:将R1R0中的16位数,左移4位,右边填入4个0,R1的高派册仿4位,移入R2的低4位。

------------------

程序中,姿笑参与向左移位的是R2R1R0,共有24位数字。

但是,在你的程序中,事先已经将R2清零,所以实际被移动的只有R1R0中的16位数字。

在你的程序前面,我加上了两行,使得R1 R0=34 12H;

程序执行后,R2 R1 R0=03 41 20H。

程序的功能,即如前所述尘纤。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12522441.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存