设有100个符号数连续存放在2000h为首地址的存储区中.统计正负零个数
来源:学生作业帮助网 编辑:作业帮 时间:2024/04/30 14:02:35
DATASEGMENTARYDW025AH,1357H,9706H,0040H,05C3H,86D0H,720FH,082AH,019DH,0124HORG0050HMAXDW0DATAENDSCOD
求出n个数的和,然后依次减去数组里所以的数最后+(-1)就是少的那个数了
MOVA,30HMOVB,31HMULABMOVR2,BMOVR3,AEND
movax,34hax
最近,编程的题目,答案往往都被屏蔽了.MOV2FH,#0MOVR0,#40HMOVR2,20HLOOP:MOVA,@R0CLRCSUBBA,2FHJNCNEXTMOV2FH,@R0NEXT:INCR0
先加的是:5678H + 9ABCH.它们的进位,要加到下面:后加的是:1234H + 5678H + Cy.所以:两次相加,前一个先是用ADD,后一个用ADC.
有两处错误:1、LETSI,DATA应该是LEASI,DATA2、EVEN是保留字,不可在程序中当标号使用完整的程序如下:;.com文件格式codesegmentmainprocfarassumecs
;CLRAMOVR1,AMOV30H,AMOVR0,#30HMOVR2,#64LOOP:MOVXA,@R0ADDA,R1MOVR1,AJNCNEXTINC30HNEXTlINCR0DJNZR2,LOO
DATASEGMENTBLOCKDB48H,6AH,35H,0C9H,12H,93HCONEQU$-BLOCKMAXDBDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA
;MOVTPTR,#2000HMOVR2,#100MOVR3,#0MOVR4,#0MOVR5,#0LOOP:MOVA,@DPTRJZZZZJBACC.7,FUINCR3;正数个数JMPNEXTFU:I
汇编语言DSEGSEGMENTSAVEDB3DUP(?)NUMDW100DUP(?)DSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEGSTART:MOVAX,DSEGMO
汇编程序如下:ZeroEQU42H;零的统计NegetiveEQU41H;负数的统计PositiveEQU40H;正数的统计CountEQU100;比较个数ORG0000HLJMPMAINORG004
datasegmentorg2000hd1db120dup(0);120随便写的,只要大于101就行.前100是已知数,后一个是写入结果的dataendscodesegmentassumecs:cod
datasegmentbuffdb1,3,5,6,7,8,9,0,6,5,4,-4,-1,-7,-9,5,-7,-4,-3,2,43,4,3,-3,0,0,0,0,1,3a1dba2dba3dbdat
嘿嘿俺来帮你做吧1机器数采用8位补码形式(含一位符号位),则十进制数[26]原码=1AH[-26]原码=9AH[-26]反码=0E5H[-26]补码=0E6H2可以将它存入工作寄存器R4中保存MOVR
#include"stdio.h"voidmain(){inta[100],i;intcnt=0;for(i=0;i=-26&&a[i]
01111111111111111这个数就是最大数(有符号位):1+2^1+2^2+...+2^14=2^15-1看懂了吗.
是什么类型的如果int的signedint*a;a=2000h;然后用a[i]来判断就行了
是到正的2013吧,是不是提写错了呢?再答:要是到正的话(1)-49+99-1=49因此这些数就是从-49到49,两两配对:和=(-49+49)+(-48+48)+……+(-1+1)+0=0(2)前1
(1)前面99个连续整数的和是多少?(-49+49)+(-48+48)+……+(-1+1)+0+50=50(2)前100个连续整数的和是多少?50+51=101