10个单字节有符号数加法,要求数组里面有负数加减法且和要大于FF,数据用原

汇编语言(6)
DATAS SEGMENT;此处输入数据段代码
1,2,3,4,5,-6,-7,-8,-9,-10,-11,12,13,14,-15,-16,-17,18,'$'
DW 10 DUP(?)
DW 10 DUP(?)
DATAS ENDS
STACKS SEGMENT ;此处输入堆栈段代码
DW 100 DUP(?)
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
MOV AX,DATAS
MOV DS,AX ;此处输入代码段代码
MOV DI,0统计正数个数
MOV SI,0统计负数个数
LEA BX,MARRAY
MOV DX,[BX]
PARRAY1大于跳转
NARRAY1小于跳转
MOV AX,[BX]
MOV PARRAY[BX],AX
MOV DX,[BX]
CMP DX,24H ;与结束符$比较,看是否结束
JNZ BIJIAO ;不相等跳转到比较处
JZ SHUCHU相等时跳到输出位置
MOV AX,[BX]
MOV NARRAY[BX],AX
MOV DX,[BX]
CMP DX,24H ;与结束符$比较,看是否结束
JNZ BIJIAO ;不相等跳转到比较处
JZ SHUCHU相等时跳到输出位置
SHUCHU :MOV AX,0输出正数的个数
ADD AL,30H
MOV AH,02H
ADD AH,30H
MOV AH,02H
MOV AX,0输出空格
ADD AL,20H
MOV AH,02H
MOV AX,0输出负数的个数
ADD AL,30H
MOV AH,02H
ADD AH,30H
MOV AH,02H
MOV AH,4CH
CODES ENDS
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:6533次
排名:千里之外
原创:41篇
(3)(6)(13)(23)用InputBox函数输入10个数与数组A中,输入后将这10个数显示在文本框中,并统计正数的个数,正数的和,负数_百度知道
用InputBox函数输入10个数与数组A中,输入后将这10个数显示在文本框中,并统计正数的个数,正数的和,负数
用InputBox函数输入10个数与数组A中,输入后将这10个数显示在文本框中,并统计正数的个数,正数的和,珐储粹肥诔堵达瑟惮鸡负数的个数,负数的和。用Print方法将结果打印在窗体上,设计界面、运行结果如图所示。
提问者采纳
Private Sub form_load()Dim i As珐储粹肥诔堵达瑟惮鸡 Integer, zs As IntegerDim zsum As Single, fsum As SingleDim A(1 To 10) As SingleMe.AutoRedraw = TrueText1 = &&For i = 1 To 10A(i) = Val(InputBox(&输入第& & i & & 个数&))If A(i) &= 0 Thenzs = zs + 1: zsum = zsum + A(i)Elsefsum = fsum + A(i)End IfText1 = Text1.Text & Space(5) & A(i)Next iMe.CurrentY = Text1.Top + Text1.HeightPrintPrint &正数的个数= & & zs & &
正数的和= & & zsumPrint &负数的个数= & & 10 - zs & &
负数的和= & & fsumEnd Sub
为您推荐:
其他4条回答
Private Sub Command1_Click()
Dim a(9) As Integer
For i = 0 To 9
a(i) = InputBox(&请输入一个整数&, &请输入&)
For i = 0 To 9
If a(i) & 0 Then
s1 = s1 + a(i)
c1 = c1 + 1
s2 = s2 + a(i)
c2 = c2 + 1
Text1.Text = Text1.Text & a(i) & &
Me.Print &正整数的个数等于:& & c1 & &
&; &正整数的和等于:& & s1
Me.Print &负整数的个数等于:& & c2 & &
&; &负整数的和等于:& & s2End Sub
Option ExplicitPrivate Sub Form_Click()
Dim i As Integer, s(9) As Integer
Dim a1 As Integer, a2 As Integer
Dim b1 As Integer, b2 As Integer
For i = 0 To 9
s(i) = InputBox(&请输入&, &提示&)
Text1.Text = Text1.Text + Str(s(i)) + Chr(9)
If s(i) & 0 Then
a1 = a1 + 1
a2 = a2 + s(i)
ElseIf s(i) & 0 Then
b1 = b1 + 1
b2 = b2 + s(i)
Scale (-10, 10)-(10, -10)
CurrentX = -7.5
CurrentY = 0
Print &正数的个数=&; a1; &正数的和=&; a2
CurrentX = -7.5
Print &正数的个数=&; b1; &正数的和=&; b2End Sub
Dim x As Integer, y As Integer
For i = 1 To 10
A(i) = InputBox((&输入第& & i & & 个数&))
Text1.Text = Text1.Text & A(i) & & &
Next iFor i = 1 To 10
If A(i) & 10 Then m = m + 1: x = x + A(i) If A(i) & 0 Then n = n + 1: x = x + A(i)Next i
Label1.Caption = Str(m)
Label2.Caption = Str(x)
Label1.Caption = Str(n)
Label1.Caption = Str(y)End Sub一些控件就自己安排吧
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁在数据段有一个字节数组,编程统计其中的正数的个数放入W单元,统计负数放入R单元。_百度知道
在数据段有一个字节数组,编程统计其中的正数的个数放入W单元,统计负数放入R单元。
请求高手帮解决
我有更好的答案
OFFSET Array读入数组数据到AX,用到SI
mov ax,好久没写了,自动将CX减1END,OFFSET Array_ 循环, [OFFSET R]
mov [OFFSET R]?汇编, ax,请自行修正, [OFFSET W]
mov [OFFSET W], OFFSET Array,可能有错: 循环; 得到数组长度
mov si?下面是汇编代码; OFFSET 取地址偏移值
sub axC语言; dup语法可能不对Array_end DB 0W
DB 0segment code
mov ax,自动将CX减1
jmp ENDPOS; 数组起始指针check, ax
loop check, ax
loop check 。segment dataArray DB dup(100)
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁汇编 循环程序设计1、在array数组中存放了10个16位带符号数,分别求出正数和负数的平均值,存放到P和N内存单元。并显示出来。要求:1)画出程序流程图,编制程序2)设置3组以上10个数,测试程序的正确性。并记录结果。2、某采集系统采集的12个参数值存于BUFFER开始字单元中,要求对这些参数预处理,方法如下:对第1,2,5,7,10各参数值调用函数Y=2X处理,对第3,4,6,8,9,11,12各参数值调用函数Y=4X处理,预处理后的结果保存到BLOCK起始的内存缓冲区中。(提示:建立逻辑尺10000)要求:1)编制程序2)给出实验结果,即BLOCK缓冲区的数据3、设A、B两个数组,都有10个16位的补码数,且都以按升序排列好,现在要把这两个数组合并成一个数组C,使C数组中的数据也按升序排列。要求:给出实验结果,即C缓冲区的数据
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,"THE AVERAGE2 IS:$"DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV CX,10 LEA BX,ARRAY COMP: MOV
AX,[BX] CMP AX,0 JGE PP INC N1 CWD ADD NSUM,AX ADC NSUM+2,DX JMP SKIPPP: INC P1 CWD
ADD PSUM,AX ADC PSUM+2,DXSKIP: ADD BX,2 LOOP
COMPNN: MOV AX,NSUM MOV DX,NSUM+2 CMP N1,0 JE PPP IDIV N1 MOV N,AX LEA DX,MESS2 MOV AX,N CALL WRITEINTPPP: MOV AX,PSUM MOV DX,PSUM+2 CMP P1,0 JE NN IDIV P1 MOV P,AX LEA DX,MESS1 MOV AX,P CALL WRITEINT
MOV AX,4C00H INT 21HCODE ENDS END START 2、INCLUDE YLIB.HDATA
SEGMENTBUFFER DW 1,2,3,4,5,6,7,8,9,10,11,12RULE DW 1000BBLOCK DW 12 DUP(?)MESS DB 0AH,0DH,"THE BLOCK IS: $"DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV CX,12 LEA BX,BUFFER LEA DI,BLOCKBEGIN: ROL RULE,1B JC SEG1 MOV AX,[BX] MOV DX,2 IMUL DX MOV [DI],AX JMP CIRCLESEG1: MOV AX,[BX] MOV DX,4 IMUL DX MOV [DI],AX JMP CIRCLECIRCLE: ADD BX,2 ADD DI,2 LOOP BEGIN MOV CX,12 LEA DX,MESS LEA DI,BLOCKOUTPUT: MOV AX,[DI] CALL WRITEINT ADD DI,2 LOOP OUTPUT MOV AX,4C00H INT 21HCODE ENDS END START3、INCLUDE YLIB.HDATA SEGMENTA DW 1,4,5,8,9,12,13,16,18,19B DW 2,3,6,7,10,11,14,15,18,20C DW 20 DUP(?)MESS DB "C = $"DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX LEA SI,A LEA DI,B LEA BX,C MOV CX,10COMP: MOV AX,[SI] CMP AX,[DI] JGE SKIP MOV [BX],AX MOV AX,[DI] MOV [BX+2],AX JMP CIRCLESKIP: MOV AX,[DI] MOV [BX],AX MOV AX,[SI] MOV [BX+2],AX JMP CIRCLECIRCLE: ADD BX,4 ADD SI,2 ADD DI,2 LOOP COMP MOV CX,20 LEA DX,MESS LEA BX,COUTPUT: MOV AX,[BX] CALL WRITEINT ADD BX,2 LOOP OUTPUT MOV AX,4C00H INT 21HCODE ENDS END START顺便问句,你是哪一班的?这是我写,可能还有点小问题,不是很完美,你修改一下吧
为您推荐:
扫描下载二维码

我要回帖

更多关于 负数加减法 的文章

 

随机推荐