编写一个程序,将一给定的数组中的数按正数和负数分别存入不同的数组中
这是代码:
Object filename [out.OBJ]:
Source listing [NUL.LST]:
Cross-reference [NUL.CRF]:
out.ASM(24): error A2052: Improper operand type
out.ASM(28): error A2006: Phase error between passes
out.ASM(29): error A2052: Improper operand type
out.ASM(33): error A2006: Phase error between passes
50136 + 449832 Bytes symbol space free
0 Warning Errors
4 Severe Errors
为什么会出现这种错误啊。
data segment
num db 1,-5,3,-7,9,8
num_z db ?;正数数组
num_f db ?;负数数组
data ends
stack1 segment para stack
dw 20h dup(0)
stack1 ends
code segment
assume cs:code,ds:data,ss:stack1
start:
mov ax,data
mov ds,ax
mov cx,6 ;循环判断六次。
mov si,0
xun:
cmp cx,1
jz cends
cmp num[si],0
js flag1 ;结果为负数时的转移。
jns flag2 ;结果为正数的转移。
dec cx ;cx减一
flag1:
mov num_f[di],num[si] ;将数据放入负数数组。
neg si ;si向后挪一位。
neg di
jmp xun ;返回判断。
flag2:
mov num_z[di],num[si] ;将数据放入正数数组。
neg si ;si向后挪一位。
neg di
jmp xun ;返回判断。
cends:
mov ah,4ch
int 21h
code ends
end start
Object filename [out.OBJ]:
Source listing [NUL.LST]:
Cross-reference [NUL.CRF]:
out.ASM(24): error A2052: Improper operand type
out.ASM(28): error A2006: Phase error between passes
out.ASM(29): error A2052: Improper operand type
out.ASM(33): error A2006: Phase error between passes
50136 + 449832 Bytes symbol space free
0 Warning Errors
4 Severe Errors
为什么会出现这种错误啊。
...全文
相关推荐
汇编语言程序设计-问题,程序,运行结果等完整版
汇编语言程序设计,整理排版完毕。欢迎大家交流
C语言程序设计-编写程序。从键盘读入8个整数存入数组a中并输出这8个数据。和、最大值、最小值及平均值。正数之和、负数之和
C语言程序设计-编写程序。从键盘读入8个整数存入数组a中并输出这8个数据。 ⑴求出这8个数据的和、最大值、最小值及平均值。 ⑵求这8个数据的正数之和、负数之和(或正数与负数的个数); ⑶求这8个数据的奇数之和、偶数之和(或奇数与偶数的个数)。
编程统计数据区中正数、零和负数的个数
循环程序设计实验 试编程统计数据区中正数、零和负数的个数
分离字数组array中正,负数,把其中正数复制到pdata数组,负数复制到ndata数组,并分别统计正,负数个数
人民邮电出版社汇编教材(王庆生)实验3第2题答案
C语言实验)输入若干非0实数直到输入0停止,要求输入的实数最大不超过20个,统计其中正数个数和负数个数。
输入若干非0实数直到输入0停止,要求输入的实数最大不超过20个,统计其中正数个数和负数个数。


