关于初学汇编语言的问题
MOVR0,#30HMOVR5,#05HMOVB,R5CLRAUP:ADDA,@R0INCR0DJNZR5,UPDIVABSJMP$为什么说B没定义?怎么改?下面这句话什...
MOV R0,#30H
MOV R5,#05H
MOV B,R5
CLR A
UP:ADD A,@R0
INC R0
DJNZ R5, UP
DIV AB
SJMP $
为什么说B没定义?怎么改?下面这句话什么意思?
UP:ADD A,@R0
INC R0
DJNZ R5, UP
DIV AB
SJMP $ 展开
MOV R5,#05H
MOV B,R5
CLR A
UP:ADD A,@R0
INC R0
DJNZ R5, UP
DIV AB
SJMP $
为什么说B没定义?怎么改?下面这句话什么意思?
UP:ADD A,@R0
INC R0
DJNZ R5, UP
DIV AB
SJMP $ 展开
2个回答
展开全部
楼上不要混淆了,楼主写的是51单片机的汇编语言,而你说的是8086的汇编语言,两者是不一样的。
楼主的程序,我在uVison中编译过,是没有出错的,并没有说B未定义,请楼主仔细核对,是否其他地方输入的问题。
下面这段程序做的事情应该是求位于片内RAM30H开始的5个数的平均值,具体注释如下:
UP:ADD A,@R0 ; 将A与R0指向的片内RAM单元中的内容相加
INC R0 ; R0指向下一存储单元
DJNZ R5, UP ; 控制UP循环执行5次,就是讲R0指向的30H开始的5个单元与累加器A相加,共循环5次,由于A初值为0,所以实际上这这5个单元的内容相加的
DIV AB ; A除以B,B的初值就是个数5,即求平均值,不过该平均值的商位于A中,余数位于B中
SJMP $ ; 程序停止
楼主的程序,我在uVison中编译过,是没有出错的,并没有说B未定义,请楼主仔细核对,是否其他地方输入的问题。
下面这段程序做的事情应该是求位于片内RAM30H开始的5个数的平均值,具体注释如下:
UP:ADD A,@R0 ; 将A与R0指向的片内RAM单元中的内容相加
INC R0 ; R0指向下一存储单元
DJNZ R5, UP ; 控制UP循环执行5次,就是讲R0指向的30H开始的5个单元与累加器A相加,共循环5次,由于A初值为0,所以实际上这这5个单元的内容相加的
DIV AB ; A除以B,B的初值就是个数5,即求平均值,不过该平均值的商位于A中,余数位于B中
SJMP $ ; 程序停止
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询