找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2623|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

求大佬們的幫助,關(guān)于單片機(jī)匯編查詢關(guān)鍵字的一個(gè)程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:787235 發(fā)表于 2020-6-23 00:15 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
大佬們啊,這題目是從50個(gè)字節(jié)的無序表中查找一個(gè)關(guān)鍵字“××H”。若找到,將關(guān)鍵字所在地址存入R2R3;若找不到,將0000H存入R2R3,我寫的程序是這樣的,為什么運(yùn)行結(jié)果就是不對(duì)呢?
       ORG 0000H
       LJMP MAIN
       ORG 0100H
MAIN:  MOV 30H,#00H
       MOV R1,#16
       MOV A, #22
       MOV DPTR, #TAB4
LOOP:  PUSH ACC
       MOVC A, @A+DPTR
       CJNE A, 30H, LOOP1
       MOV R2, DPH
       MOV R3, DPL
DONE:  RET
LOOP1: POP ACC
       INC DPTR
       DJNZ R1, LOOP
       MOV R2, #00H
       MOV R3, #00H
       AJMP DONE
TAB4: DB 01H, 03H, 05H, 10H, 11H, 18H, 09H, 17H, 10H, 20H, 21H, 25H, 32H, 31H, 37H, 43H

      END

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:401564 發(fā)表于 2020-6-23 08:18 | 只看該作者
1:PUSH ACC和POP ACC指令盡量不要用,在這壓入,在那彈出,進(jìn)進(jìn)出出的,你也不知道他彈出的是哪個(gè)值
2:沒有CALL指令,盡量不要用RET指令,你也不知道它會(huì)返回到哪里
3:匯編是個(gè)麻煩的東西,可以的話,盡量加注釋,也好找出問題出在哪里
回復(fù)

使用道具 舉報(bào)

板凳
ID:235200 發(fā)表于 2020-6-23 09:01 | 只看該作者
LOOP循環(huán)有問題,執(zhí)行MOVC A, @A+DPTR時(shí)的A應(yīng)該清0,MOV A, #22這一句用處不大,而且進(jìn)行了保護(hù),實(shí)際上每次執(zhí)行MOVC A, @A+DPTR時(shí)的A是22,好象不符合題意,把22改成0試試
回復(fù)

使用道具 舉報(bào)

地板
ID:787340 發(fā)表于 2020-6-23 09:24 | 只看該作者
有BUG   慢慢找出錯(cuò)誤來
回復(fù)

使用道具 舉報(bào)

5#
ID:267719 發(fā)表于 2020-6-23 09:27 | 只看該作者
MOV A, #22改為MOV A, #0
回復(fù)

使用道具 舉報(bào)

6#
ID:787235 發(fā)表于 2020-6-23 20:34 | 只看該作者
謝謝各位大佬指點(diǎn),我已經(jīng)找出問題了,問題出在了修正值那里,A的修正值應(yīng)該為0,因?yàn)槭怯玫腀A+DPTR,移動(dòng)指針是DPTR,然后還有一個(gè)地方就是在第一個(gè)loop最后加一個(gè)SJMP $來終止循環(huán);然后那個(gè)壓棧和入�?梢詣h掉也可以留著,因?yàn)槟莻€(gè)本來是用來給修正值用的
回復(fù)

使用道具 舉報(bào)

7#
ID:707687 發(fā)表于 2020-6-28 00:20 | 只看該作者
小多啦 發(fā)表于 2020-6-23 20:34
謝謝各位大佬指點(diǎn),我已經(jīng)找出問題了,問題出在了修正值那里,A的修正值應(yīng)該為0,因?yàn)槭怯玫腀A+DPTR,移動(dòng) ...

敢問是HFUT的嗎
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表