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

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 7726|回復(fù): 6
收起左側(cè)

單片機(jī)字符串怎么比較,我這有個(gè)程序,看不大懂...

[復(fù)制鏈接]
ID:46812 發(fā)表于 2012-12-22 23:11 | 顯示全部樓層 |閱讀模式
比較兩個(gè)ASCII 碼字符串是否相等。字符串長(zhǎng)度在內(nèi)部RAM 3FH 單元,兩字符串的首地址分別為40H、50H。如果

兩個(gè)字符串相等,置CY=1,否則,置CY=0。
MOV R0,#40H
MOV R1,#50H
MOV R2,#3FH
LOOP1:MOV A,@R0
CLR C
XRL A,@R1
JNZ LOOP2
INC R0
INC R1
DJNZ R2,LOOP1
SETB C
RET
LOOP2:CLR C
RET
那個(gè)字符串長(zhǎng)度在內(nèi)部RAM 3FH 單元是什么意思啊、請(qǐng)賜教一下啊。
回復(fù)

使用道具 舉報(bào)

ID:46812 發(fā)表于 2012-12-22 23:47 | 顯示全部樓層
都來(lái)看看啊
回復(fù)

使用道具 舉報(bào)

ID:7485 發(fā)表于 2012-12-23 10:04 | 顯示全部樓層
字符串可以是若干個(gè)字符。你可以取其中n個(gè)字符進(jìn)行比較,當(dāng)然“n”也可以是全部。“n”保存在3fh中。進(jìn)行比較的兩個(gè)字符串保存的位置當(dāng)然都是一個(gè)連續(xù)的內(nèi)存區(qū)域,其區(qū)域的第一個(gè)地址分別在“40h”、“50h”。 這樣的問(wèn)題很簡(jiǎn)單,大概是許多人不屑回答吧?
[此貼子已經(jīng)被作者于2012-12-23 10:05:46編輯過(guò)]

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:47220 發(fā)表于 2012-12-24 11:52 | 顯示全部樓層
 我也看不懂,好難
回復(fù)

使用道具 舉報(bào)

ID:46812 發(fā)表于 2012-12-24 22:43 | 顯示全部樓層
字符串里一個(gè)字符  就差不多一個(gè)字節(jié)了吧,那還怎么保存在一個(gè)單元里啊 ,你開(kāi)玩笑呢啊 ?那你說(shuō)要是把這兩個(gè)字符串比較完要比較多少次啊 。
回復(fù)

使用道具 舉報(bào)

ID:7485 發(fā)表于 2012-12-25 10:44 | 顯示全部樓層
樓主還是先弄懂:什么是字符?什么是字節(jié)?什么是內(nèi)存單元?然后再來(lái)看程序。 內(nèi)存單元一般是指一個(gè)“字節(jié)”單元,不是“位”單元。
回復(fù)

使用道具 舉報(bào)

ID:27770 發(fā)表于 2018-7-12 03:37 | 顯示全部樓層
前面開(kāi)始3行,就把 40H,50H,3FH,移到 R0,R1,R2 去了!  R0,R1 作為指針使用,R2作為計(jì)數(shù)器使用.
MOV A,@R0       CLR C        XRL A,@R1  這3行是把 R0 指向的存放單元內(nèi)容, 通過(guò) XRL 異或指令,與 R1 指向單元進(jìn)行運(yùn)算,.
異或運(yùn)算遇到2個(gè)字節(jié)的內(nèi)容各位相同,就會(huì)讓 A = 0!  標(biāo)志位 Z =1 !
JNZ 指令就是判斷 Z 標(biāo)志位的, 如果Z=0,說(shuō)明兩數(shù)不相等, 此時(shí), R0,R1 分別加1,各指向下一個(gè)數(shù)據(jù),繼續(xù)比較.------而R2是最大比較次數(shù),到達(dá)次數(shù)后,無(wú)論結(jié)果如何,都就會(huì)退出程序.
如果JNZ 指令判斷 Z 標(biāo)志位的結(jié)果=0,說(shuō)明兩數(shù)相等, 程序走向 LOOP2  ,結(jié)束比較.
至于 C 標(biāo)志是程序退出后,方便比較而設(shè)置的,另外,如果需要, R2 也記錄了比較到多少次的數(shù)字,可以通過(guò)它查看判斷到.
匯編程序其實(shí)很仔細(xì),每一步都一清二楚,多練習(xí)熟練后就會(huì)容易看明白. ----- 僅供參考!

評(píng)分

參與人數(shù) 1黑幣 +70 收起 理由
admin + 70 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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