A. 单片机汇编语言里 DB
单片机汇编语言中的DB是以字节为单位定义一个数据段,一般用于查表程序中,举例说明:
DISPLAY:
MOV DPTR,#TAB
MOV A,R2
MOVC A,@A+DPTR
MOV P0,A
RET
TAB: ; 共阴极数码管显示代码表
DB 3FH,06H,5BH,4FH,66H ;01234
DB 6DH,7DH,07H,7FH,6fh ;56789
B. 单片机汇编语言
DATA1 BIT P1.0;DATA不能作为符号名定义,改为DATA1 BIT表示P1.0定义为DATA1
SCK BIT P1.1
noACK EQU 0;noACK 定义为0
ACK EQU 1
C. 什么单片机的汇编语言~~~
单片机的汇编是最接近机器底层的语言,它的特点是要求你每个时刻要清楚数据或者程序执行到那里,所有的硬件资源你都可以操纵,什么数据要放到那个存储单元,你能随心所欲,但是必须要按规范,离开规范当然不行,所以要学好单片机的汇编,首先就要掌握单片机的硬件,不必很多,起码是它的可利用资源,你不了解,根本就用不上汇编,就算是硬着头皮去学汇编,也只是事倍功半,会有很累的感觉
D. 单片机汇编指令
DPTR数据指针,是16位的,分为两个字节,DPH,DPL
这组指令把DPTR的数据提出来,处理后放回去,下面一般会用于对处理后的外部数据地址进行操作
E. 单片机汇编语言中SJMP $是什么意思
因为不循环那么过阵单片机会从运行到最后从头来
因为PC的值不停的增加到最后变0000就是起始了所以要有个死循环让PC不会被溢位而导致0000发生
F. 单片机汇编
你没有搞清楚单片机的地址,0000H为系统复位的入口地址,0003H为外部中断0的入口地址,000BH为定时器0的中断入口地址0013H为外部中断1的入口地址001BH为定时器T1的中断入口地址,0023H为串口中断的入口地址,002BH为定时器T2的中断入口地址,而你把START定义为0000H,就是说当程序上电复位后,直接运行到此处,你前面定义的Count EQU 30H
SP1 BIT P3.7 没有起作用,其二,你的程序把中断入口地址都给占了,所以不能运行,你改成如下的程序就可以了:
org 0000h
ajmp START
org 0030h
START:
Count EQU 30H
SP1 BIT P3.7
MOV Count,#00H
NEXT: MOV A,Count
MOV B,#10
DIV AB
loop:clr p2.0
setb p2.1
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
clr p2.1
setb p2.0
MOV A,B
MOVC A,@A+DPTR
MOV P0,A
JNB SP1,WT
WT:JB SP1,loop
LCALL DELY10MS
JB SP1,loop
INC Count
MOV A,Count
CJNE A,#100,NEXT
LJMP START
DELY10MS: MOV R6,#20
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
RET
TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END
G. 单片机汇编语言
mov a,40h; A=50H
mov r0,a ;R0=50H
mov @r0,20h ;(50H)=30h
mov 50h,r0 ;(50H)=50H
mov a,@r0 ; A=50H
按照顺序执行最后的结果是:
(20H)=30H,(30H)=40H,(40H)=30H,(50H)=50H ,A=50H。
H. 单片机汇编语言与计算机汇编语言有什么区别
每种CPU都有对应的汇编指令,不同CPU的汇编指令一般都不同,这跟CPU的结构有关,计算机用的CPU大部分都是X86系列,单片机分很多种,常见的有51、AVR、430等等,它们的结构都不一样所以汇编也不一样,但x86和51都是INTEL开发的,它们的汇编语言相似度比较大,如果你学过单片机汇编语言与计算机汇编语言就很容易理解
I. 单片机,汇编语言
51单片机是Keil 软件
pic单片机是MPLAB软件
汇编要将编辑文件要保存为.asm为后缀的文件(c语言则是.c为后缀)
avr单片机是avr studio 或iccavr软件
汇编要将编辑文件要保存为.s为后缀的文件(c语言则是.c为后缀)
51单片机可以很多下载软件 将你的汇编程序 在Keil 软件中设置为:
options for target 1->output->create HEX file
生成hex文件 然后将这个hex文件通过下载软件下载到单片机中.
下载软件有两类:串口下载和ISP接口下载
ISP接口下载软件是对应你的下载器的(一般买下载器都会给你对应的下载软件的)
串口下载:STC类的51单片机可以用STC_ISP_V486.exe,但是对于Atmel类的就不行
微机原理的上机课都是在DOS下输入EDIT XX.ASM后编写的,单片机也是这样吗?
单片机不是这样的 因为微机机器码和单片机机器码是不一样的
所以单片机需要在windows下用对应的软件生成单片机的机器码 在单片机中才能运行啊
祝你学习进步
J. 单片机汇编程序
SJMP $就是“原地踏步走”的意思,即当程序执行的该处时,什么事也不做。一般用来进行延时作用
SJMP $是在原地循环,一般都用在等待中断到来,然后进入中断处理程序。
处理完了,再继续在原地循环。
比如你的手机现在不用了,估计也在这里循环,你按下键,它就当是有中断
来了,就去处理,处理完了,它又开始循环等待你的操作了。
END是每个程序必须写的指令,如果你的程序走到了这条指令就停下来了。
一般的程序是不会让它走到这条指令的,因为走到了就结束了,不能去处理
你的实时中断了。
引用:http://..com/question/92880942.html
dxw0712的回答