内部RAM中30H开始的5个无符号单字节数中的最小值
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/12 22:38:23
程序如下:MOVR0,#21H;起始地址.MOVMAX,#00H;先用0当做最大值.MOVR2,#20H;数据长度.LOOP:MOVA,@R0;取来一个数据.CLRCSUBBA,MAX;减“最大值”.JNCrel1;不够减就算了.MOVA,
;MOVB,#0MOVDPTR,#1000HMOVR2,#100LOP:MOVXA,@DPTRCJNEA,B,$+3JCNEXTMOVB,ANEXT:INCDPTRDJNZR2,LOPMOVDPTR,#1100HMOVA,BMOV@DPTR
movsi,30h;数据区首地址装入源变址寄存器SIlodsb;把第一个数读入AL,作为最大数movcx,9;循环比较9次Compare:;开始逐个比较cmpal,byteptr[si];把当前最大数与当前数比较jaeNextOne;当前最
;MOVR0,#30HMOVR1,#40HMOVR2,#4CLRCLOOP:MOVA,@R0SUBBA,@R1MOV@R0,AINCR0INCR1DJNZR2,LOOPCLRASUBBA,#0MOV@R0,AEND
movdi,31hss:cmpax,[di]jzddmovax,[di]dd:incdiloopssmov[40h],ax
MOVA,30HMOVB,31HMULABMOVR2,BMOVR3,AEND
ORG0000HMOV30H,#10MOV31H,#9MOV32H,#8MOV33H,#7MOV34H,#6MOV35H,#5MOV36H,#4MOV37H,#3MOV38H,#2MOV39H,#1LJMPSTARTSTART:CLR00H
第一个问的答案ORG0000HSJMPMAINORG0030HMAIN:MOVR0,#DATA1MOVR1,#DATA2MOVDPTR,#DATA3MOVR2,#13D0:MOVA,@R0MOVB,#6MULABMOVR3,AMOVA,@R
我按照你的要求给你写了一段程序,加了标注,你分析一下吧movr0,#30H;数据地址movr5,#0FH;数据个数movr7,#00h;比较缓存LOOP:movr2,@r0;取出数据存入r2cjner2,r7,BJ;比较做差BJ:JCDZY
;MOV32H,30HMOVA,30HCLRCSUBBA,31H;(30H)-(31H)JNBACC.7,ZZZ;差为正数则转移JBOV,_END;负、且溢出转至结尾SJMPXXX;否则去存31HZZZ:JNBOV,_END;差为正、且无溢
ORG0000HAJMPMAINORG0040HMAIN:MOVR3,#0;R3用来统计内容为‘1’的个数,初始为0MOVR0,#10H;用R0作间接寻址的指针MOVR2,#100;R2控制循环次数S0:MOVA,@R0;从内RAMR0指到
(1)工作寄存器组(00H——1FH)这是一个用寄存器直接寻址的区域,内部数据RAM区的0—31,共32个单元.它是4个通用工作寄存器组,每个组包含8个8位寄存器,编号为R0——R7.(2)可位寻址RAM区(20H——2FH)16个字节单元
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
DATASEGMENTBLOCKDB48H,6AH,35H,0C9H,12H,93HCONEQU$-BLOCKMAXDBDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVD
LOOP2:MOVR0,30HMOVA,@R0INCR0MOV60H,@R0CLRCCJNEA,60H,LOOPLOOP:JCQDMOV20H,60HQD:MOV20H,ADJNZ#16H,LOOP2
;test\x05MOV30H,#3\x05MOV31H,#2\x05MOV32H,#4\x05MOV33H,#5\x05MOV34H,#7\x05MOV35H,#8\x05MOV36H,#1\x05MOV37H,#0\x05MOV38H,
不好意思,我没有弄明白你的问题,从你说的题中我可以知道:X,Y,Sum,的取值范围都是0-255,如果要计算Sum你需要考虑数字的范围问题,这个你要用补码去计算,因为都是无符号型的,原码又等于补码,但是你必须要明白,数据变化的规律.0-25
空1处:MOVR7,#08H空2处:CLRCSUBBA,2AH
先加的是:5678H + 9ABCH.它们的进位,要加到下面:后加的是:1234H + 5678H + Cy.所以:两次相加,前一个先是用ADD,后一个用ADC.