找出内部RAM中30H开始的5个无符号单字节数中的最小值
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/10 16:47:57
程序如下:MOVR0,#21H;起始地址.MOVMAX,#00H;先用0当做最大值.MOVR2,#20H;数据长度.LOOP:MOVA,@R0;取来一个数据.CLRCSUBBA,MAX;减“最大值”.JNCrel1;不够减就算了.MOVA,
movsi,30h;数据区首地址装入源变址寄存器SIlodsb;把第一个数读入AL,作为最大数movcx,9;循环比较9次Compare:;开始逐个比较cmpal,byteptr[si];把当前最大数与当前数比较jaeNextOne;当前最
;MOVB,#0MOVDPTR,#1000HMOVR2,#100LOP:MOVXA,@DPTRCJNEA,B,$+3JCNEXTMOVB,ANEXT:INCDPTRDJNZR2,LOPMOVDPTR,#1100HMOVA,BMOV@DPTR
我按照你的要求给你写了一段程序,加了标注,你分析一下吧movr0,#30H;数据地址movr5,#0FH;数据个数movr7,#00h;比较缓存LOOP:movr2,@r0;取出数据存入r2cjner2,r7,BJ;比较做差BJ:JCDZY
MOVA,30HMOVB,31HMULABMOVR2,BMOVR3,AEND
LOOP2:MOVR0,30HMOVA,@R0INCR0MOV60H,@R0CLRCCJNEA,60H,LOOPLOOP:JCQDMOV20H,60HQD:MOV20H,ADJNZ#16H,LOOP2
空1处:MOVR7,#08H空2处:CLRCSUBBA,2AH
ORG0000HMOV30H,#10MOV31H,#9MOV32H,#8MOV33H,#7MOV34H,#6MOV35H,#5MOV36H,#4MOV37H,#3MOV38H,#2MOV39H,#1LJMPSTARTSTART:CLR00H
第一个问的答案ORG0000HSJMPMAINORG0030HMAIN:MOVR0,#DATA1MOVR1,#DATA2MOVDPTR,#DATA3MOVR2,#13D0:MOVA,@R0MOVB,#6MULABMOVR3,AMOVA,@R
;MOV32H,30HMOVA,30HCLRCSUBBA,31H;(30H)-(31H)JNBACC.7,ZZZ;差为正数则转移JBOV,_END;负、且溢出转至结尾SJMPXXX;否则去存31HZZZ:JNBOV,_END;差为正、且无溢
movdi,31hss:cmpax,[di]jzddmovax,[di]dd:incdiloopssmov[40h],ax
;MOVR0,#30HMOVR1,#40HMOVR2,#4CLRCLOOP:MOVA,@R0SUBBA,@R1MOV@R0,AINCR0INCR1DJNZR2,LOOPCLRASUBBA,#0MOV@R0,AEND
MOVDPTR,#2000HMOV20H,#0;先用0当做最大数(求最小数时,用255)MOVR2,#16LOOP:MOVXA,@DPTRCJNEA,20H,TTT;(A)-(20H)TTT:JCNEXT;不够减转移(求最小数时,用JNCN
编程将RAM从DATA单元开始的16个无符号数相加,其和送入SUM单元,假定和小于1、程序:MOVA,40HANLA,#0FHMOV41H,AMOVA,40HSWAPA
datasegmentorg2000hd1db120dup(0);120随便写的,只要大于101就行.前100是已知数,后一个是写入结果的dataendscodesegmentassumecs:code,ds:datastart:movax
先加的是:5678H + 9ABCH.它们的进位,要加到下面:后加的是:1234H + 5678H + Cy.所以:两次相加,前一个先是用ADD,后一个用ADC.
MOVR1,#50HMOVDPTR,#20HL1:CLRAMOVCA,@A+DPTRMOVR2,AMOVA,#DPTRMOVR0,AMOVA,R2MOVX@R0,AINCDPTRDJNZR1,L1再问:片外RAM从1000H单元开始存放10
程序如下:MOVR0,#20HMOVDPTR,#1000HLOOP:MOVA,@R0MOVX@DPTR,AMOV@R0,#0INCDPTRINCR0CJNER0,#31H,LOOPSJMP$END
DATASEGMENTBLOCKDB48H,6AH,35H,0C9H,12H,93HCONEQU$-BLOCKMAXDBDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVD
这个程序很简单,很多教材上都有的,movr3,#16movr0,#20hmovr1,#28hloop:mova,@r0mov@r1,aincr0incr1djnzr3,loop看懂了,再稍微修改一下,就可以了.