您的位置 首页 芯闻

单片机第四次作业

作业:多字节无符号数加法运算程序入口:R0=被加数低位地址指针R1=加数低位地址指针出口:R0=和数高位地址指针1、先fileagrave;new建asm文

作业:多字节无符号数加法运算程序
进口:R0=被加数低位地址指针
R1=加数低位地址指针
出口:R0=和数高位地址指针
1、先fileànew建asm文件18.asm
CLR C
LOOP1:MOV A,@R0
ADDC A,@R1
MOV @R0,A
INC R0
INC R1
DJNZ R2,LOOP1
JNC LOOP2
MOV @R0,#01H
RET
LOOP2:DEC R0
RET
END

为了调试时看数据,预先赋值,所以程序前加:
MOV 30H,#78H
MOV 31H,#56H
MOV 32H,#34H
MOV 33H,#12H
MOV 40H,#0F0H
MOV 41H,#0DEH
MOV 42H,#0BCH
MOV 43H,#9AH
MOV R0,#30H
MOV R1,#40H
MOV R2,#4
2、建新工程,Projectànewproject,选AtemlàAT89C51,导入文件18.asm。
留意,对初学者,一个工程里只能有本程序18.asm,无关的程序要删去,新实验一个程序最好从头建工程,以确保一个工程里只要你要实验的那一个程序。

3、可见程序:


4、编译通往后,点debug下的start/stop开端调试,step和stepover都是单步调试,step是遇到子程序或中止也要进入进行单步调试,stepover是遇到子程序或中止当一句一次履行完。本程序物子程序,二者是相同的。咱们履行赋值句子得到:


点viewàmemorywindows,再输入D:30h回车,得到:



接着履行:可见R0,R1,R2值的改动:

持续履行:

下一步:

下一步:

可见:30H内容变为68H.
下一步:

R0,R1值都加一,持续:

可见R2值减1,但不为0,所以跳转到LOOP1.持续:通过几回循环之后,直到R2变为0,此刻不再循环,可看到:

30H,31H,32,,3H值都已改动。持续履行:

此刻CY不为0,所以跳转到LOOP2。

可看到r0减1,变为33H,即为和数高位地址指针,指向33h处。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/xinwen/259461.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部