试编程,将RAM的20h,21h,22h
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/14 10:10:42
MOVDPTR,#2000HMOV20H,#0;先用0当做最大数(求最小数时,用255)MOVR2,#16LOOP:MOVXA,@DPTRCJNEA,20H,TTT;(A)-(20H)TTT:JCNE
;MOVTPTR,#2000HMOVR2,#100MOVR3,#0MOVR4,#0MOVR5,#0LOOP:MOVA,@DPTRJZZZZJBACC.7,FUINCR3;正数个数JMPNEXTFU:I
这个程序很简单,很多教材上都有的,movr3,#16movr0,#20hmovr1,#28hloop:mova,@r0mov@r1,aincr0incr1djnzr3,loop看懂了,再稍微修改一下,
第一个问的答案ORG0000HSJMPMAINORG0030HMAIN:MOVR0,#DATA1MOVR1,#DATA2MOVDPTR,#DATA3MOVR2,#13D0:MOVA,@R0MOVB,#
我按照你的要求给你写了一段程序,加了标注,你分析一下吧movr0,#30H;数据地址movr5,#0FH;数据个数movr7,#00h;比较缓存LOOP:movr2,@r0;取出数据存入r2cjner
MOVDPTR,#1000HMOVA,@DPTRMOVDPTR,#4000HMOV@DPTR,A
程序如下:MOVR0,#20HMOVDPTR,#1000HLOOP:MOVA,@R0MOVX@DPTR,AMOV@R0,#0INCDPTRINCR0CJNER0,#31H,LOOPSJMP$END
MOVR1,#50HMOVDPTR,#20HL1:CLRAMOVCA,@A+DPTRMOVR2,AMOVA,#DPTRMOVR0,AMOVA,R2MOVX@R0,AINCDPTRDJNZR1,L1再问
PUSH20HPUSH21HPOP20HPOP21H
movdi,31hss:cmpax,[di]jzddmovax,[di]dd:incdiloopssmov[40h],ax
空1处:MOVR7,#08H空2处:CLRCSUBBA,2AH
(2K×16)÷(1K×8)=(2×2)=4(片)
:ORG0000HMOVR0,#20HMOVR7,#3LOOP:MOVA,@R0;取数.JNBACC.7,L2CPLAINCAORLA,#80HMOV@R0,A;存回去.L2:INCR0DJNZR7,
MOV2FH,20HMOV2EH,21HMOV2DH,22H只用这三条指令即可.
1.将R5中内容放入A中.MOVA,R52.将以R0中内容为地址的额片内RAM单元中内容放入A中;MOVA,@R03.将A中内容放入片外RAM中的1000H单元movDPTH,#010HmovDPTL
CLRC;C=0CLR08H;21H.0=0CPL09H;21H.1=0->1SETBC;C=1SETB0FH;21H.7=1CPLC;C=1->0;21H=0F2HC=0再问:请问,08H,09H和
编程将RAM从DATA单元开始的16个无符号数相加,其和送入SUM单元,假定和小于1、程序:MOVA,40HANLA,#0FHMOV41H,AMOVA,40HSWAPA
程序如下:MOVR0,#21H;起始地址.MOVMAX,#00H;先用0当做最大值.MOVR2,#20H;数据长度.LOOP:MOVA,@R0;取来一个数据.CLRCSUBBA,MAX;减“最大值”.
你自己试着有指针实现吧,(单片机主要是用与控制的不是用于计算的)你可以定义:int*p.*p1;p=20H;p1=21H;通过指针是可以实现的自己好好做再问:ORG0000HLJMPMAINORG01
movdptr,#20hmovxa,@dptrmovb,aincdptrmovxa,@dptrmulabincdptrmovx@dptr,amova,bincdptrmovx@dptr,a