1,什么时候用AJMP,什么时候用LJMP?
2,相对转移和绝对转移指令有什么区别?
3,比较大的程序如何调试,比如ds1302时钟程序,我自认为编程习惯还是比较好的,结构化的程序,编译可以通过,但运行就是有问题。
LJMP、AJMP、SJMP,都是无条件转移指令。
区别,你就不用深究了。
你编程时,仅需使用一条:JMP,就可以了。
编译软件,会自动帮你,编译成为适合的机器码。
单片机汇编语言的几个疑问
这一点C语言就比较好,以函数方式实现,少写括号编译通不过,不像汇编,少些个RET照样能通过。另外,编写程序时应养成一种习惯:对程序体中的寄存器操作尽量不要直接使用其地址,比如:MOV 30H,A,这里直接写30H不好,因为大的汇编程序对寄存器地址的调整是很常见的现象,一旦修改,程序中每个地方都...
在51单片机的汇编语言中的双周期指令说第二个周期读入操作码并丢弃...
第一个问题:双周期指令,第二周期读的是操作数,只有在第一周期读操作码的,而有几条指令是单字节的,也需要两个周期,这不是浪费时间,是因一个周期是不能完成的,这不是你想像的那样。第二个问题:要做计时,不管是倒计时还是正常计时,用延迟函数来做,这种方法计时是不准确的,只有用定时器才...
高分!!汇编语言的若干问题
是。6、高级语言是否是先编译成汇编指令再汇编成机器码,如果是这样高级语言在编译成汇编指令后如果汇编指令不能做到第三个问题那样,又是如何实现对各种高级语言和机器指令的协调统一的?高级语言,在这里就不要提了,它们是寄生的,没有根基。7、对于单片机编程是否都需要依靠汇编语言?那么硬件不同于计...
谁能帮我检查下,这个C51单片机的汇编语言有什么错误!
存在以下几个问题:1. 在按键的延时去抖动后,没有重新读取按键键值,即:L8: ACALL DELAY CJNE A,#0FFH,SAVE 这两条指令中间应插入:MOV A, P1,否则你用来比较的A还是第一次读到的A 2. 你在检测到按键按下后,没有等待键释放再去检测下一个按键。从你的程序中看,检测到按键按下后,蜂鸣...
我写了一个单片机的汇编语言,汇编没问题,但是调试的时候效果不理想,求 ...
汇编编译通过不等于程序没问题:1,缺乏两个按键同时按下的程序;2,由于K1,K2模块死循环,程序没有返回,每次都要重启电源或手动复位单片,才能通过按键 改变程序走向;3,按键没有去抖动处理容易出现误判断。4,K1的键值是001H,K2的值是002H,那么两个按键同时按下应该是003H吧,003H不是没有...
单片机C语言小疑问
你用的晶振应该是12M的吧,其实这段C程序编译成汇编就是三条MOV指令和三条DJNZ指令,程序的大部分时间是反复的执行DJNZ这条指令,DJNZ指令周期是2us,所以这段程序的时间大约是20*20*248=0.2S左右.那为什么用K=248而不是250呢,因为在一个循环(第三个for循环),即248个对变量k的DJNZ后,还会有一个...
单片机汇编语言问题
A2:SETB ET0 ;打开秒闪定时器 SETB TR0 JB P1.5,A3 A3:CLR TR0 MOV HOUR,#0 MOV MINTUE,#0 MOV SECOND,#0 1、执行"JB P1.5,A3"这句话,不管P1.5什么状态,都会执行A3 2、程序如下:A1:JNB P1.5,A2 LJMP A1 A2:SETB ET0 ;打开秒闪定时器 SETB TR0 JB P1.5,A3 ...
关于单片机汇编语言的小数问题
方法如下 先定义小数点后的N个位,1个位定义一个寄存器来储存十进制数值,假如不用管未知数的位数,那么定义5个寄存器就可以记录0.xxxxx 然后把要×的×,加的按位加,有进位就进
单片机汇编语言问题
1)MOVDPTR,#4000H;赋地址值 MOVR0,#40H MOVXA,@DPTR;片外RAM MOV@R0,A;片内RAM 2)MOVDPTR,#4000H MOVXA,@DPTR MOVDPTR,#3000H MOVX@DPTR,A 3)MOVDPTR,#0800H MOVCA,@DPTR;片内ROM MOVR0,#30H MOV@R0,A 4)MOVA,30H MOV40H,A 5)MOVA,30H SWAPA MOV40H,A 这些都是基础的......
急求:单片机MS-51,用汇编语言编写程序的问题. 高手的高分,谢谢,
实际上,不是255对应900,而是256对应900。那么:900 \/ 256 = 3.515 把0.015忽略,由此产生的误差,小于百分之一。那么,全部使用整数的运算,有:(0~255) * 35 = (0~8925)显示的时候,只是显示前3位,即可。--- 用8位的AD转换器,精度就是这样了,和算法无关。为了提高精度,应该采用分辨...