请教各位高手一个关于汇编的简单问题

下面这个顺序检索的程序是否可以不管DPTR(把loop1中的INCDPTR去掉、开始的MOVDPTR#TAB4去掉),loop中把AH、AL赋给R2、R3ORG1000H... 下面这个顺序检索的程序是否可以不管DPTR(把loop1中的INC DPTR去掉、开始的MOV DPTR #TAB4去掉),loop中把AH、AL赋给R2、R3

ORG 1000H
MOV 40H,#xxH ;关键字xxH送40H单元
MOV R1,#50 ;查找次数送R1
MOV A,#14 ;修正值送A
MOV DPTR,#TAB4 ;表首地址送DPTR
LOOP: PUSH Acc
MOVC A,@ A+PC ;查表结果送A
CJNE A,40H,LOOP1;(40H)不等于关键字则转LOOP1
MOV R2,DPH ;查到关键字,把地址送R2,R3
MOV R3,DPL
DONE: RET
LOOP1:POP Acc ;修正值弹出
INC A ;A+1→A
INC DPTR ;修改数据指针DPTR
DJNZ R1,LOOP ;R1≠0,未查完,继续查找
MOV R2,#00H ;R1=0,R2和R3清0
MOV R3,#00H ;表中50个数已查完
AJMP DONE ;从子程序返回
TAB4: DB …,…,… ;50个无序数据表
展开
 我来答
乱七胡说八糟乱想
2012-11-06 · 好知、好奇、好问、好学、多语、热心。
乱七胡说八糟乱想
采纳数:5657 获赞数:14884

向TA提问 私信TA
展开全部
ORG 1000H
MOV 40H,#xxH ;关键字xxH送40H单元
MOV R1,#50 ;查找次数送R1
MOV R2,#14 ;修正值送A
MOV DPTR,#TAB4-1 ;表首地址减一送DPTR可少转移一下
LOOP: inc dptr
MOVC A,@dptr ; ·DPTR 查表结果送A
CJNE A,40H,LOOP1;(40H)不等于关键字则转LOOP1
MOV R2,DPH ;查到关键字,把地址送R2,R3
MOV R3,DPL ret
loop1: inc r2
djnz r1,loop
MOV R2,#0 ;没查到关键字,把地址R2,R3 清零
MOV R3,#0
DONE: RET

你原的如查到了可没弹出压的ACC就返回了,要出错。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式