麻烦高手帮我解释一下这个汇编程序

;超声波发生子程序(12MHz 晶振 38.5Hz)

NAME CS_T
PR CS_T CS_T SEGMENT CODE
PUBLIC CS_T
RSEG PR CS_T CS_T
CS_T: PUSH ACC
MOV TH0,#00H
MOV TL0,#00H
MOV A,#4D
SETB TR0
CS_T1: CPL P1.0
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
DJNZ ACC,CS_T1
POP ACC
RET

END
我问问这个详细的功能,为什么会有CS_T和CS_T1两个的?它们的作用分别是什么?

第1个回答  2010-04-28
注意:
你列出的那个代码是51单片机的代码,使用的是51的编译器。
单片机的构架和计算机CPU构架差别特别大,在编写汇编语言的语法、结构也不相同,所以你不要用x86汇编的内容来看待51单片机的汇编,51的汇编比x86简单多了。
因此其中的 CS_T和CS_T1只是程序中使用的标号,表示一段程序的开始,没有其他意思。
相对来说,51单片机编写汇编语言的语法格式是和x86编写汇编语言的格式不同,,当然其是简单很多的啦,自己研究研究就会明白了。

参考资料:.....努力...奋斗! 星爷! ;->

麻烦高手帮我解释一下这个汇编程序
注意:你列出的那个代码是51单片机的代码,使用的是51的编译器。单片机的构架和计算机CPU构架差别特别大,在编写汇编语言的语法、结构也不相同,所以你不要用x86汇编的内容来看待51单片机的汇编,51的汇编比x86简单多了。因此其中的 CS_T和CS_T1只是程序中使用的标号,表示一段程序的开始,没有其他意思。

高手帮我看下这个汇编程序,有些段落不懂
1、EQU是符号定义伪指令,相当于常量定义,类似于C中的#defin;BIT是位变量定义伪指令。你应该找本51单片机的书看看;2、程序“当然”能直接控制i\/o口!3、你给出的程序中再也没有用到CH变量,所以无法回答。

汇编指令解释
1.Rn 表示R0~R7中的一个 2.#data 表示8位的数值 00H~FFH 3.direct 表示8位的地址 00H~FFH 4.@Ri 表示寄存器间接寻址 只能是R0或者R1 5.@DPTR 表示数据指针间接寻址 6.bit 表示位地址 7.$ 表示当前地址 寄存器寻址 MOV A,R1 将R1中的数值赋予A 直接寻址 MOV A,3AH 将地址3AH...

各位高手帮我解决一个汇编程序吧
(1)org是指定地址计数器的当前值,也就是说用org指定一个地址后,下面再分配的内存单元就是从指定位置开始。题目中指定了org 30H,那么下一个要分配的单元就是30H。而EQU是符号定义伪指令,它定义的符号就相当于C语言里的符号常量,并不占用存储空间。所以,S1的偏移地址就是30H。S1占用了8个单元...

汇编程序解释
MOV R3,#6 \/\/把立即数6放入R3寄存器 DJNZ R3,$ \/\/检测R3是否为0 等待 RRC A \/\/A带进位位的右循环 MOV P3.3,C \/\/把进位标志C 赋给P3.3口 MOV R3,#20 \/\/把立即数20放入R3寄存器 DJNZ R3,$ \/\/检测R3是否为0 等待 SETB P3.3 \/\/P3.3置1 NOP \/\/空...

【高手指教】一段汇编程序读不懂。
本程序把R2中的16进制数字的ASCII码,变换成了16进制数。0~9的ASCII码,进行变换的时候,要减去30H、A~F的ASCII码,则需要减去37H,这样就变换成了对应的16进制数。减去30H还是37H,要看原始数据是否小于10。详细理论可以参考有关资料。L: MOV A, R2 ;取来16进制数字的ASCII码.CLR ...

请教汇编高手帮我翻译一下这个程序的意思
ORG 0H ;指定程序入口 SJMP MAIN ;转主程序 ORG 23H ;中断入口 LJMP T0SVR ;转中断处理程序 ;--- MAIN: NOP ;空操作 MOV SP,#50H ;设堆栈底为50H单元 MOV TH0,#0D9H MOV TL0,#01AH ;T0计数初值为D91AH MOV TMOD,#01H ;T0工作方式1(16位计数)MOV IE,#82H;开中断,...

汇编程序求解释
MAI4: JB T0,MAI5;;设置程序断电,并根据to的值是否继续等待 DJNZ R6,MAI4;设置程序断电,并根据56的值是否继续等待 DJNZ R5,MAI3;设置程序断电,并根据tr5的值是否继续等待 RET;DKCX0子程序结束 ;子程序结束 MAI5: MOV R5,#5 MAI6: MOV R6,#0FFH MAI7: JNB T0,MAI8...

哪位汇编高手给解释一下啊。很多都看不懂
我对于汇编的理解是看其功能,也就是重点了解一下其code部分,然后知道这个片段是用来做什么的就可以了,至于数据区,也就是date段,那只是一个数据,可以进行修改的,一样的格式,没有必要对其也做什么注释。无非是程序开始时装入内存时占用一定的空间,并将空间做一些处理而已,代码段中也可以开空间,...

汇编高手来帮忙啊,有段代码不是很懂?
再把线性地址的中间10位(即位12至位21)作为所指定的页目录表中的页表项的索引,对应表项所包含的页码指定物理地址空间中的一页;最后,把所指定的物理页的页码作为高20位,把线性地址的低12位不加改变地作为32位物理地址的低12位。所以这段程序的意思就是得到页表项的物理地址然后修改它里面的值。

相似回答
大家正在搜