编写程序:把内部RAM中存储地址从20H开始的10个8位无符号二进制数相加,结果送30H单元。

编写程序:把内部RAM中存储地址从20H开始的10个8位无符号二进制数相加,结果送30H单元。,第1张

ORG 2000H

MOV R0,09H

MOV R1,#20H

MOV A,@R1

LOOP1: MOV R3,A

CLR CY

INC R1

SUBB A,R1

JNC LOOP2

MOV A,@R1

SJMP LOOP3

LOOP2: MOV A,R3

LOOP3: DJNZ R0,LOOP1

MOV 30H,A

SJMP $

END

transc:

mov r0,#10

mov r1,#30h

mov dptr,#1000h

loop:

mov a,@r1

movx @dptr,a

inc r1

inc dptr

djnz r0,loop

ret

RAMDAT:

    MOV DPTR,#0000H

    MOV A,#5

    MOV R2,#20H

LOOP:

    MOVX @DPTR,A

    INC DPTR

    INC A

    DJNZ R2,LOOP

    RET

如下即可:

;

MOV DPTR, #3000H

MOV R0, #30H

MOV R2, #30

LOP:

MOV A, @R0

MOV @R0, #0

MOVX @DPTR, A

INC R0

INC DPTR

DJNZ R2, LOP

RET

END

SUB: MOV DPTR,#2000H MOV R7,#08H MOV R0,#30H LOOP: MOVX A,@DPTR MOVX @R0,A INC DPTR INC R0 DJNZ R7,LOOP RET

以你上图为例,具体 *** 作如下:1、在C1单元格内输入 =IF(A1="S",B1,0), 再往下拉到C112、在D1单元格内输入 =IF(A1="D",B1,0), 再往下拉到C113、在B11单元格内输入 =MAX(C1:C10)4、在B12单元格内输入 =MAX(D1:D10)5、把C列和D列隐藏。就可以了,你试试。(我想的这个办法是一个比较笨的办法,肯定还有比我的更好的办法,如果没找到更好的,先用我这个凑合着用吧!)

MOV DPTR,#1000H

MOV R0, #30H

MOV R7, #31H

L1: MOVX A, @DPTR

MOV @R0, A

INC R0

INC DPTR

DJNZ R7, L1

以上就是关于编写程序:把内部RAM中存储地址从20H开始的10个8位无符号二进制数相加,结果送30H单元。全部的内容,包括:编写程序:把内部RAM中存储地址从20H开始的10个8位无符号二进制数相加,结果送30H单元。、编写程序:把片内RAM中30H开始的10H个存储单元的数据传送到片外RAM中1000H开始的10H个存储单元、单片机,用汇编语言编写将片外RAM中0000H-001FH单元依次赋值为从5开始的自然数的程序。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9702570.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存