初学汇编,帮忙解释一下这段汇编代码?是查表么?
RECV: MOV 0CH, #00HRECV1: MOV DPTR, #R_BUFFER1
MOV A,0CH
ADD A,DPL
MOV DPL,A
CLR A
ADDC A,DPH
MOV DPH,A
MOVX A,@DPTR
MOV 0EH,A
MOV DPTR,#T_TAB
MOV A,0CH
ADD A,DPL
MOV DPL,A
CLR A
ADDC A,DPH
MOV DPH,A
MOV A,0EH
MOVX @DPTR,A
INC 0CH
MOV A,0CH
NOP
NOP
CJNE A,#16,RECV1
MOV DPTR,#R_BUFFER2
MOVX A,@DPTR
NOP
NOP
CJNE A,#1,RECV2
MOV DPTR,#S_TAB
NOP
NOP
LJMP RECV101
RECV2: NOP 是外部RAM,的数组复制
for(i = 0;i < 16;i ++)(XDATA)T_TAB = (XDATA)R_BUFFER1; for(0Ch=0; 0ch<16;0ch++)
{T_TAB=R_BUFFER1;}
if(R_BUFFER2==1) goto RECV101;
goto RECV101; 初中?你咋不上天呢 ;讀取R_BUUFER1內容,與讀取T_TAB內容
RECV: MOV 0CH, #00H
RECV1:
MOV DPTR,#R_BUFFER1
MOV A,0CH
ADD A,DPL
MOV DPL,A
CLR A
ADDC A,DPH
MOV DPH,A
MOVX A,@DPTR
MOV 0EH,A
MOV DPTR,#T_TAB
MOV A,0CH
ADD A,DPL
MOV DPL,A
CLR A
ADDC A,DPH
MOV DPH,A
MOV A,0EH
MOVX @DPTR,A
INC 0CH
MOV A,0CH
NOP
NOP
CJNE A,#16,RECV1 ;比對16次完成?
MOV DPTR,#R_BUFFER2;已比對完成,載入R_BUFFER2
MOVX A,@DPTR
NOP
NOP
CJNE A,#1,RECV2 ;比對內容是否為 1,不是跳到 RECV2
MOV DPTR,#S_TAB ;是載入S_TAB
NOP
NOP
LJMP ;跳到 RECV101
RECV2: NOP
你給的程式片斷太少,至於查什麼程式看不出來
zchong 发表于 2016-5-14 17:34
初中?你咋不上天呢
楼主是初学汇编,不是初中。。。 确实很想问下,为什么要学汇编? klxx68 发表于 2016-5-15 07:39
确实很想问下,为什么要学汇编?
你以为所有的芯片都有c编译器啊。{:titter:} xuyapple 发表于 2016-5-14 23:55
楼主是初学汇编,不是初中。。。
我道歉,{:shy:} {:shy:} 初中生又搞出无人机了,还是超音波避障的! kebaojun305 发表于 2016-5-15 09:11
你以为所有的芯片都有c编译器啊。
确实没有深入调查,一直认为没有C编译器支持的芯片要不被淘汰要不就是加入C大家庭,是大势所趋。另外现在芯片种类厂家这么多,可选择替代方案,有必要为了某一种芯片专门去学汇编吗? 本帖最后由 GoingDown 于 2016-5-16 14:03 编辑
for(int i=0;i<16;i++)
{
T_TAB=R_BUFFER1;
}
if(*R_BUFFER2== 1)
{
DPTR=&S_TAB;
RECV101();
}
else
{
//RECV2的内容
......
}
klxx68 发表于 2016-5-16 11:49
确实没有深入调查,一直认为没有C编译器支持的芯片要不被淘汰要不就是加入C大家庭,是大势所趋。另外现在 ...
不用专门去学啊,汇编都通用的 只是助记符 有分别,打印个指令表,直接就开工了。 不在乎成本的是可以选带C编译器的。 kebaojun305 发表于 2016-5-16 15:38
不用专门去学啊,汇编都通用的 只是助记符 有分别,打印个指令表,直接就开工了。 不在乎成本的是可以选 ...
汇编不通用吧,不同架构的处理器。 看见51汇编感觉真亲切~~~~~~~~~~~~~~我用的就是51汇编
页:
[1]