高手帮我看下这个汇编程序,有些段落不懂

CH EQU 30H
DPCNT EQU 31H
DPBUF EQU 33H
GDATA EQU 32H
ST BIT P3.0
OE BIT P3.1
EOC BIT P3.2

ORG 00H
LJMP START
ORG 0BH
LJMP T0X
ORG 30H
START: MOV CH,#0BCH
MOV DPCNT,#00H
MOV R1,#DPCNT
MOV R7,#5
MOV A,#10
MOV R0,#DPBUF
LOP: MOV @R0,A
INC R0
DJNZ R7,LOP
MOV @R0,#00H
INC R0
MOV @R0,#00H
INC R0
MOV @R0,#00H
MOV TMOD,#01H
MOV TH0,#(65536-4000)/256
MOV TL0,#(65536-4000) MOD 256
SETB TR0
SETB ET0
SETB EA
WT: CLR ST
SETB ST
CLR ST
WAIT: JNB EOC,WAIT
SETB OE
MOV GDATA,P0
CLR OE
MOV A,GDATA
MOV B,#100
DIV AB
MOV 33H,A
MOV A,B
MOV B,#10
DIV AB
MOV 34H,A
MOV 35H,B
SJMP WT
T0X: NOP
MOV TH0,#(65536-4000)/256
MOV TL0,#(65536-4000) MOD 256
MOV DPTR,#DPCD
MOV A,DPCNT
ADD A,#DPBUF
MOV R0,A
MOV A,@R0
MOVC A,@A+DPTR
MOV P1,A
MOV DPTR,#DPBT
MOV A,DPCNT
MOVC A,@A+DPTR
MOV P2,A
INC DPCNT
MOV A,DPCNT
CJNE A,#8,NEXT
MOV DPCNT,#00H
NEXT: RETI
DPCD: DB 3FH,06H,5BH,4FH,66H
DB 6DH,7DH,07H,7FH,6FH,00H
DPBT: DB 0FEH,0FDH,0FBH,0F7H
DB 0EFH,0DFH,0BFH,07FH

END

这个程序是51单片机控制adc0809转换的一个实验程序(网上找的),
1.第一段的equ bit是什么意思?为什么书上找不到这2个指令的说明?
2.还有直接写的p3.0 难道程序能直接控制i/o口吗?
3.start部分里面给ch的 0bcH是什么的初始值?
其余部分先不问了,最好大概提下每一段程序的用途,谢谢了
先悬赏20分,如果我搞明白了再追加哦 。

1、EQU是符号定义伪指令,相当于常量定义,类似于C中的#defin;BIT是位变量定义伪指令。你应该找本51单片机的书看看;
2、程序“当然”能直接控制i/o口!
3、你给出的程序中再也没有用到CH变量,所以无法回答。
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-05-11
程序有点问题,可能是已经定义了的其中一部分,好久没看汇编了,大概是这么个意思。

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

汇编高手来帮忙啊,有段代码不是很懂?
把线性地址的低12位不加改变地作为32位物理地址的低12位。所以这段程序的意思就是得到页表项的物理地址然后修改它里面的值。

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

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

汇编中遇到的程序题看不懂
主要的就是这个子程序了 PROADD PROC NEAR PUSH AX ;PUSH CX ;压栈这些数据 PUSH SI ;即保存 目的怕数据被修改因为 ;下 面 可 能用到 LEA SI,ARY ;将ary的偏移地址放到si中,使si指向ary MOV CX,COUNT ;cx 中放的是循环的次数 XOR AX,AX ;很常用的寄存器清零...

汇编高手帮忙看下以下代码实现什么功能,jmp eax时,eax的值是多少...
第一MOV指令后,eax=12345678h,, 然后,add eax,12345678h后,eax=12345678h+12345678h,,,所在指令,,jmp eax,,就是跳到,EIP=EIP+eax去了,,,对EIP的值就自己算算吧,也很简单的,,,

汇编高手帮忙看下这段程序啊!谢谢啦!
LED_0EQU30H LED_1EQU31H LED_2EQU32H ADCEQU35H CLOCKEQUP2.4 ST EQU P2.5 EOC EQUP2.6 OE EQU P2.7\/\/这里全部改成EQU 你应该是在写 单片机程序吧?!另外如上楼说的 你好像 把文件后缀写错了。。。 应该是 ASM。。。

高分求助:帮我修改一下这个汇编程序(程序在回答里面)···
答cfc511: 立方体_百度百科 立方体,是由6个正方形面组成的正多面体,故又称正六面体。它有12条边和8个顶点。 应用[编辑本段] 日常生活 食盐和糖的结晶体都是立方状。 骰子最常见的形状就是立方体。楼主绘图部分写的很好,无需修改,我再告诉你七个顶点便可。汇编_绘制立方体程序 DATAS SEGMENT mode...

单片机汇编语言解析.下面的程序不怎么懂,希望高手帮忙解析一下...
这段 查表程序 没什么意思,要学习单片机汇编语言,先要学习单片机的指令系统,熟悉每条指令是什么意思及作用。

请教汇编高手帮我翻译一下这个程序的意思
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;开中断,...

相似回答
大家正在搜