.ARRAY单元开始存放200个有符号字节数,统计出其正数、0和负数的个数,并把它们分别存入N1、N2、和N3中。

作者&投稿:游青 (若有异议请与网页底部的电邮联系)
汇编高手请帮个忙 100个字符符号数组,求负数 零 正数的个数,存放到存储器中~

上面的这位大哥,人家要求用汇编语言来编写,你非要用C语言
我来回答,这是我以前回答别人的问题时做的回答,跟你的问题很相似.
这个程序的功能是分开正负数,并存到存储器里,你可以在增加一个记数功能,比如:如果是负数,就用mov sum,0和add sum,1当然sum要先定义.
你要小小的改动一下.
stack segment
dw 32 dup(?)
stack ends
data segment
ARY dw 5,-3,7,-2,8
CT dw ($-ARY)/2 ;元素个数
A dw 2 dup(?) ;为负数存放预留空间
B dw 3 dup(?) ;为正数存放预留空间
data ends
code segment
assume cs:code,ds:data,ss:stack
main proc far
mov ax,data
mov ds,ax
mov bx,0 ;初始化bx
mov cx,CT ;个数
c20: lea si,ARY ;取数组地址
cmp [si],bx ;和0比较
jl c10 ;若小于转
mov B,[si] ;大于则存
jmp c30
c10: mov A,[si]
c30: add si,2 ;修改地址指针
loop c20 ;循环
mov ah,4ch
int 21h
main endp
code ends
end main

#include
int main()
{
int a[10] = {1,-1,2,0,5,-6,7,0,-2,0};
int i,num_po=0,num_in=0,num_ze=0;
for(i=0;i<10;i++)
{
if(a[i]>0) num_po++;
else if(a[i]==0) num_ze++;
else num_in++;
}
printf("数组中正数%d个,负数%d个,零%d个
",num_po,num_in,num_ze);
}

汇编语言
DSEG SEGMENT
SAVE DB 3 DUP(?)
NUM DW 100 DUP(?)
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
START: MOV AX,DSEG
MOV DS,AX
MOV CX,100
XOR BX,BX
XOR DX,DX
LEA SI,NUM
SUB SI,2
NEXT1: ADD SI,2
CMP [SI],0
JNZ NZ
INC BL ;存放零的个数
JMP OK
NZ: TEST [SI],8000H
JNZ N
INC DH ;存放正数的个数
JMP OK
N: INC DL ;存放负数的个数
OK: LOOP NEXT1
MOV SAVE,DH ;将结果传送到内存保存
MOV SAVE+1,DL
MOV SAVE+2,BL
MOV AH,4CH
INT 21H
CSEG ENDS
END START

data segment
buff db 1,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,3
a1 db ?
a2 db ?
a3 db ?
data ends
code segment
assume ds:data,cs:code
start:
mov ax,data
mov ds,ax
mov si,0
mov cx,30
next:
cmp buff[si],0
ja next1
jz next2
inc a3
jmp tj
next1:
inc a1
jmp tj
next2:
inc a2
tj:
inc si
loop next
mov ax,4c00h
int 21h
code ends
end start


php函数mysql_fetch_row、assoc、array、object的区别
一、mysql_fetch_row 这个函数是从结果集中取一行作为枚举数据,从和指定的结果标识关联的结果集中取得一行数据并作为数组返回。每个结果的列储存在一个数组的单元中,偏移量从 0 开始。注意,这里是从0开始偏移,也就是说不能用字段名字来取值,只能用索引来取值。例如:while($row = mysql_fetch_row...

用自己的语言说出php中数组的常用函数和用法?
array_filter : 过滤数组中的无效元素,可以使用回调函数过滤 array_map : 使用回调函数依次处理所有元素 implode: 将一维数组转为特定符号隔开的字符串,explode: 将特定符号隔开的字符串转为一维数组 sort \/ksort: 将数组进行升序排序 array_unique: 将数组元素去重 array_values: 取数组的值,重新...

Excel中 index函数的array区域,如何用表中的一个单元格内的值指定?_百...
在12月工作表中选择C2:C5单元格区域, 在输入框中输入“=INDEX”,不按回车。点击选择11月工作表,选择B2:B5单元格区域,此时输入框中的将自动进行输入成“=INDEX('11月'!B2:B5”在输入框中继续输入,将公式补写成“=INDEX('11月'!B2:B5,0,0)”。如果不要第2步,也可以直接在第1步输入...

西门子PLC数组怎么用的,麻烦给个例子,谢谢
西门子PLC数组的使用方法是:新建一个DB块,建块时选择"shared DB",并在DB_VAR变量的INT中直接修改变量的属性即可。具体的数组使用例子如下:在ARRAY变量类型的中括号中写入1到20,表示数组从DB_VAR[1]开始,到DB_VAR[20]结束。在ARRAY下一行选择INT即可完成INT量的数组构建了。在用户程序执行阶段,...

int array[] int *array. c语言
int array[100]; 定义了一个数组,array是数组的名字,array在系统处理时,的确是用整型指针处理的,array中记录了数组在内容占用空间区域的首地址。你使用的 int array[]; 的定义方式,只能用于在子函数中定义参数数组时使用,此时参数数组的大小由实际参数数组的大小确定。int *array;也可以定义数组...

excelVBA代码怎么在单元格中输入数组公式
会导致错误。可以先判断要修改的单元格是否处于数组公式区域,例如:With Sheet3 .Range(“B1:B6″).FormulaArray =”=A1:A6=”” Excel”””With .Range(“B1”)If .HasArray Then MsgBox “单元格处于数组公式区域” & .CurrentArray.Address End If End With End With 原因2:试图在合并单元...

CELL是什么
CELL是单元数组(Cell Array)将类型不同的相关数据集成到一个单一的变量中,使得大量相关数据的引用和处理变得简单方便;需要注意的是,单元数组仅仅是承载其他数据类型的容器,大部分的数学运算只是针对其中的具体数据进行的,而非针对单元数组本身进行。定义 1. 细胞型数据的定义:1)直接赋值定义:细胞型...

Excel中进行index函数的使用技巧
引用形式——INDEX(reference,row_num,column_num,area_num)。数组形式通常返回数值或数值数组;引用形式通常返回引用。Array为单元格区域或数组常数;Row_num为数组中某行的行序号,函数从该行返回数值。Column_num是数组中某列的列序号,函数从该列返回数值。Reference是对一个或多个单元格区域的引用,...

c语言数组的定义
4、方括号中常量表达式表示数组元素的个数,如a[5]表示数组a有5个元素。但是其下标从0开始计算。因此5个元素分别为a[0], a[1], a[2], a[3], a[4]。5、不能在方括号中用变量来表示元素的个数,但是可以是符号常数或常量表达式。例如:define FD 5 \/\/ ...int a[3+2],b[7+FD];...

c语言中什么时候可以这样定义数组"int a[]"
这与int a[5]={1,2,3,4,5} ; 是一样的,[]中不写数字,表示数组空间大小由实际数组元素数据个数来决定。这样定义的数组,一般表示一个常量数组。当然,因为没有加const,也可以修改数组元素内容,如:a[0]=6 ;自定义函数,形参变量为一维数组时 如:void print_array( int a[], int n ...

饶阳县13098888297: .ARRAY单元开始存放200个有符号字节数,统计出其正数、0和负数的个数,并把它们分别存入N1、N2、和N3中. -
曲促血府: 汇编语言 DSEG SEGMENT SAVE DB 3 DUP(?) NUM DW 100 DUP(?) DSEG ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG START: MOV AX,DSEG MOV DS,AX MOV CX,100 XOR BX,BX XOR DX,DX LEA SI,NUM SUB SI,2 NEXT...

饶阳县13098888297: 汇编语言程序编程 -
曲促血府: 我知道: 1)从0200H单元开始有100个数,编一个程序检查这些数,正数保持不变,负数取补后送回,要求程序框图和完整程序及每条指令的解释. (直接从0398HI单取消,然后进入POUJN脚本,改485这个值就可以了)2)已知数组A和数...

饶阳县13098888297: 汇编程序设计设数据段ARRAY单元开始有20个有符号数的双字节数
曲促血府: DATA SEGEMNT ARRAY DW 56, 12, -88, -126, 5, 16, 32, -99, 72, -18 DW 116, 34, 92, 32, 156, -42, 816, 16, -15, 218 MIN DW ? HEXTAB DB '0123456789ABCDEF'...

饶阳县13098888297: 汇编 循环程序设计 -
曲促血府: 1、INCLUDE YLIB.HDATA SEGMENTARRAY DW 1,2,-3,4,-5,-1,-1,-2,-2,-9N DW ?P DW ?P1 DW ?N1 DW ?PSUM DW ?,?NSUM DW ?,?MESS1 DB 0AH,0DH,"THE AVERAGE1 IS: $"MESS2 DB 0AH,0DH,...

饶阳县13098888297: 微机原理,汇编程序题:从变量ARRAY开始的区域,存放10个WORD类型数,找出其中最大的数,并存入变量MAX -
曲促血府: DATA SEGMENTARRAY DW 025AH,1357H,776H,0040H,05C3H,36D0H,720FH,082AH,019DH,0124HORG 0050H MAX DW 0 DATA ENDS CODE SEGMENTASSUME CS:CODE, ES:DATA ORG 100H START: MOV CX, 9H ;循环次数=数...

饶阳县13098888297: DB中的ARRAY[1..200]是什么意思?有没有办法分别加注释? -
曲促血府: 不是字符串,而是指的200个INT类型数据.如果LZ需要注释,那还不如不用数组定义,而采用单个变量定义,并加上Comment即可.

饶阳县13098888297: 《微机原理》【汇编程序】数据段array单元开始有50个符号数的字节数 -
曲促血府: ; 本程序通过编译,运行正确Code Segment Assume CS:Code,DS:Codearray db 23,-69,0,35,-46,57,-68,79,-89,-81,98,-43,56,-41,123,-98,102,-87,31 db -65,58,67,-25,-100,20,-26,79,-81,51,-37,-91,-63,19,-85,-62,39,-48,69 db -123,0,17,126,-111,...

饶阳县13098888297: Array[10]代表数组Array有10个元素.Array[2]=30是代表第二个元素等于30还是第三个元素等于30 -
曲促血府: 一维数组1、定义: var a:array [1..10] of integer; 其中:a是这一批数据的名称,称为数组名;array、of是定义数组的保留字;中括号中的数字是数据编号的下限和上限,财时也说明了数据的个数(上限-下限);最后一个是数据的基类型,如...

饶阳县13098888297: 在ARRAY存储区中存放10个带符号数,试统计其正数负数和零的个数将个数分别放到Pvar,Nvar,Zvar单元中. -
曲促血府: functionf(str){varm=0;varstrs=newArray();//定义一数组strs=str.split(",");for(i=0;i

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网