汇编语言编程单片机的问题

用汇编语言编单片机程序,可以直接给管脚赋值,比如
setb p1.0 就是p1.0脚置高,
那么有些单片机,不是用P1 P2 P3来定义管脚的
而是用PA PB PC来定义的,该怎么实现setb PA.0??

MOV P1,#00H其实是MOV 90H,#00H
SETB P1.0 其实是SETB 90H
就是说,P1和P1.0都代表一个寄存器地址而已,只不过那么多地址不好记,就起了个好记的名字叫P1,P1.O
他俩的地址都是90H 但一个是字节地址,一个是位地址,通过指令来区分是对哪个进行操作,对字节操作的指令如MOV ,就是P1 SETB 则对应P1.0
P1.1的地址就是91H, P1.2 对应 92H... ...
这些名字都是寄存器地址,其他单片机也一样,PA,PB,PC 也是地址
要SETB PA.0 首先要看PA这个寄存器能不能够位寻址,PA.O中的"."在汇编语言中是取位运算,一般做为引脚的寄存器都是可以位寻址的.
还有对于不同的单片机,指令也可能不太相同,SONIX的单片机就是
B0BSET P1.0.
温馨提示:内容为网友见解,仅供参考
第1个回答  2006-11-30
不同系列的单片机汇编语句不同,您可以参照汇编指令表。
第2个回答  2006-12-03
其实 置1 的办法有很多,最不会错的 你就把端口的寄存器的某位置一就可以了
第3个回答  2006-12-01
有的单片机不可以直接对单一管脚付值,你提到的PA PB PC,可能是PIC单片机的I/O端口,如PA口有8个端口,必须8个比特一起写,可以只将需要的那一位置1,其他的置0,一起输出。

简述汇编语言编写单片机程序的缺点
1、入门难,一般认为汇编语言比C语言难学。2、可读性差,汇编语言必须加比较详尽的注释,否则过一段时间编程者自己看都困难。3、缺乏人性化,汇编语言使用的是面向机器的指令,与人们的思维方式相悖,需要编程者转变思维方式。4、编程工作量大,汇编语言编程的语句要多于C语言,再加上注释则工作量比较大。

C语言和汇编语言在开发单片机时各有哪些优缺点?
汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言可能有所差异,所以不易移植。如果对单片机C语言有兴趣,C语言是一种结构化的高级语言。其优点是可读性好,移植容易,是普遍使用的一种计算机语言。...

单片机汇编语言的几个疑问
这一点C语言就比较好,以函数方式实现,少写括号编译通不过,不像汇编,少些个RET照样能通过。另外,编写程序时应养成一种习惯:对程序体中的寄存器操作尽量不要直接使用其地址,比如:MOV 30H,A,这里直接写30H不好,因为大的汇编程序对寄存器地址的调整是很常见的现象,一旦修改,程序中每个地方都...

在使用单片机中,汇编语言和c语言各有什么优缺点?
一、汇编语言:缺点:汇编语言属于低级语言,难理解,编程效率低,编程容易出错。优点:程序执行效率高,占用资源少, 方便对最底层的一些东西进行操作。二、C语言:缺点:危险性高,开发周期长,可移植性不如JAVA。优点:语句少但是灵活度高,针对过程的言语相比于非结构化言语条理性很好接近人类的逻辑思维...

学了 电脑的汇编语言 对单片机编程有用吗?(请会单片机编程的进)
首先:汇编语言难懂,拿一段程序一下子看不出来要干什么,C51很直观。第二:汇编难于移植到下一个项目,C51很方便,多个项目可以共用程序,大大节省了开发的时间。第三:C51不用考虑寄存器,内存分配等等,汇编就要考虑。我个人的看法就是单片机编程的话就用C51,汇编可以了解一下,因为有时候C51语言里面...

51单片机编程题,用汇编语言怎么做?
ET0=1; TR0=1;} void timer0() interrupt 1 { TH0 = (65536-500)\/256; \/\/定时器装初值500, 1mS 中断一次 TL0 = (65536-500)%256;CP=~CP; \/\/改变脉冲信号的输出状态 } void main(){ Timer0_init();CP=0;while(1) { } } 汇编语言,才看到,算了,你别人的回答吧 ...

汇编语言编程单片机的问题
P1.1的地址就是91H, P1.2 对应 92H... ...这些名字都是寄存器地址,其他单片机也一样,PA,PB,PC 也是地址 要SETB PA.0 首先要看PA这个寄存器能不能够位寻址,PA.O中的"."在汇编语言中是取位运算,一般做为引脚的寄存器都是可以位寻址的.还有对于不同的单片机,指令也可能不太相同,SONIX...

急求:单片机MS-51,用汇编语言编写程序的问题. 高手的高分,谢谢,
用B方法即可。但是乘以 3.53,还应该研究一下。实际上,不是255对应900,而是256对应900。那么:900 \/ 256 = 3.515 把0.015忽略,由此产生的误差,小于百分之一。那么,全部使用整数的运算,有:(0~255) * 35 = (0~8925)显示的时候,只是显示前3位,即可。--- 用8位的AD转换器,精度就...

两道单片机编程题目,用汇编语言
#0FH ;将累加器的低四位转换成ASCII码 ADD A,#90H DA A ADDC A,#40H DA A RET 2、MOV RO,#20H MOV R1,#30H MOV R7,#8 XX1:MOV A,@R0 MOV B,A INC R0 MOV A,@R0 SWAP A XOR A,B MOV @R1,A DJNZ R7,XX1 好久没用过汇编了,不知道是否完全正确,希望能帮到你 ...

汇编语言 单片机小题目 判断 改错 高分赏
@A+DPTR; MOVC B,@A_DPTR 错处:B格式错、@A_DPTR格式错; XCH B,R0 错处:寄存器B不可与Rn交换数据,可改为XCH A,R0; ORL 16H,R1 错处:逻辑运算须用累加器A,可改为ORL A,R1; ADDC A,2050H 错处:地址2050H超出51单片机片内储存器范围。二、选择对或错 ...

相似回答
大家正在搜