org 0
sjmp START
org 30h
START: mov P1,#0FFh ;LED不亮
st1: mov P2,#0FFh ;准备读数(开关状态)
mov A,P2 ;读数
anl A,#0Fh ;取低四位
acall SEG7 ;调用显示码子程序
mov P1,A ;将得到的显示码送数显管显示
sjmp st1 ;循环
SEG7: inc A ;该子程序实现将数字转换为显示码
movc A,@A+pc
ret
DB 0c0h,0F9h,0a4h,0b0h
DB 99h,92h,82h,0F8h
DB 80h,90h,88h,83h
DB 0c6h,0a1h,86h,8eh
end
这里 acall 是什么命令 网上好像没有找到解释
pc是什么 有什么含义
可以把这段程序解释下么 尤其是下面那些db 好像没有和程序关联到啊
pc是一个数么? movc A,@A+pc 这个结果是什么 a是怎么指向0c0h
单片机汇编语言的几个疑问
AJMP地址为:0800H,目标地址:07F8H,A11不一样,不在一页范围,此时还得将其改成LJMP,否则编译出错。其实就省了一个字节,执行时间上都是2个机器周期,没区别,所以犯不上。如果像此例,使用SJMP倒是个较好的选择,只是要求你对代码间的间隔有数才行。总之,尽量用LJMP吧。2、二者区别其实就是...
单片机汇编问题 非常急
这个很简单 第一个是不带进位左移 A2H=10100010 45H=01000101 记住不带进位左移则最高位的1又移入到最低位来了,是一个环行移位,CY不变,所以A=45H,CY=1。第二个是带进位左移 A2H=10100010 45H=01000101 记住带进位左移则CY移入最低位,A的最高位移入CY,你可以将CY连同A一起看做是...
单片机汇编的问题
MOV A,R5;BCD码带进位自身相加,相当于乘2 ADDC A,R5 DA A;十进制调整 MOV R5,A 自身相加,即乘以2,也就是左移一位。相加时,带着进位,即将 C 移进来了。然后,调整成 BCD 码。最后,保存到原来的位置R5。这种方法的一个实际应用,可见:http:\/\/zhidao.baidu.com\/question\/129169219.h...
单片机汇编小问题
H表示16进制数,就是将10进制数3192转换为16进制数,你不会转换教你一个方法计算机-程序-附件-计算器-查看-科学计算器,你输入十进制数点击上边的16进制就可以进行转换了。想手工转换的话就先转换为2进制然后再转换为16进制。
单片机汇编程序问题
(x)=y,表示的是将y存放到片内RAM中地址为x的存储单元里。H表示16进制数。所以(30H)=38H:30H单元中存入一个数38H;(38H)=40H: 38H单元中存入一个数40H;(40H)=48H: 40H单元中存入一个数48H;(48H)=90H: 48H单元中存入一个数90H 。
单片机汇编指令问题
讲解指令的时候,都是说 REL 是8位带符号补码数,是相对转移指令中的偏移量。实际编程时,都是在 SJMP 后面,写上目的地的标号。往下看,看下一章:编程的部分,楼主就会看到,REL,根本就没有用。在编译的时候,编译软件,就会算出这个偏移量,以《8位带符号补码数》写入机器语言代码。所以,这个...
谁能帮我检查下,这个C51单片机的汇编语言有什么错误!
存在以下几个问题:1. 在按键的延时去抖动后,没有重新读取按键键值,即:L8: ACALL DELAY CJNE A,#0FFH,SAVE 这两条指令中间应插入:MOV A, P1,否则你用来比较的A还是第一次读到的A 2. 你在检测到按键按下后,没有等待键释放再去检测下一个按键。从你的程序中看,检测到按键按下后,...
关于单片机的原码,反码,补码 之 汇编程序的问题
负数的原码,才需要变换,正数不用变。而这个程序并没有判断,都进行了变换,这是错误的。3. 负数原码变换到补码,是数值部分取反加一。而这个程序,是全部都取反了。4. 程序中的标号,使用错误。不应该用 ADD、SUB 这样的保留字。5. 调用了多次子程序,都没有“返回 (RET)”。这程序,早就跑飞...
简述汇编语言编写单片机程序的缺点
1、入门难,一般认为汇编语言比C语言难学。2、可读性差,汇编语言必须加比较详尽的注释,否则过一段时间编程者自己看都困难。3、缺乏人性化,汇编语言使用的是面向机器的指令,与人们的思维方式相悖,需要编程者转变思维方式。4、编程工作量大,汇编语言编程的语句要多于C语言,再加上注释则工作量比较大...
单片机C语言编程与汇编混合编程时出现的问题
首先#pragma src 的意思是向下编译至SRC文件中 在KEIL中第1次编译时很容易出错的。#pragma asm 这类型的命令先别加,编译通过一次就好了 如果是在向HEX文件编译时出的错误。因为#pragma src 的意思是向下编译至SRC文件中(汇编文件),pragma asm MOV R2,#20 D1:MOV R3,#100 D2:MOV R4,#229 ...