欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 求大佬們的幫助,關于單片機匯編查詢關鍵字的一個程序 [打印本頁]

作者: 小多啦    時間: 2020-6-23 00:15
標題: 求大佬們的幫助,關于單片機匯編查詢關鍵字的一個程序
大佬們啊,這題目是從50個字節的無序表中查找一個關鍵字“××H”。若找到,將關鍵字所在地址存入R2R3;若找不到,將0000H存入R2R3,我寫的程序是這樣的,為什么運行結果就是不對呢?
       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


作者: Y_G_G    時間: 2020-6-23 08:18
1:PUSH ACC和POP ACC指令盡量不要用,在這壓入,在那彈出,進進出出的,你也不知道他彈出的是哪個值
2:沒有CALL指令,盡量不要用RET指令,你也不知道它會返回到哪里
3:匯編是個麻煩的東西,可以的話,盡量加注釋,也好找出問題出在哪里
作者: csmyldl    時間: 2020-6-23 09:01
LOOP循環有問題,執行MOVC A, @A+DPTR時的A應該清0,MOV A, #22這一句用處不大,而且進行了保護,實際上每次執行MOVC A, @A+DPTR時的A是22,好象不符合題意,把22改成0試試
作者: suve    時間: 2020-6-23 09:24
有BUG   慢慢找出錯誤來
作者: carpcarey    時間: 2020-6-23 09:27
MOV A, #22改為MOV A, #0
作者: 小多啦    時間: 2020-6-23 20:34
謝謝各位大佬指點,我已經找出問題了,問題出在了修正值那里,A的修正值應該為0,因為是用的@A+DPTR,移動指針是DPTR,然后還有一個地方就是在第一個loop最后加一個SJMP $來終止循環;然后那個壓棧和入棧可以刪掉也可以留著,因為那個本來是用來給修正值用的
作者: WEI12    時間: 2020-6-28 00:20
小多啦 發表于 2020-6-23 20:34
謝謝各位大佬指點,我已經找出問題了,問題出在了修正值那里,A的修正值應該為0,因為是用的@A+DPTR,移動 ...

敢問是HFUT的嗎




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1