这段汇编程序有这个错误Operand must have size,应该怎么改啊?程序功能是算出正数负数和零的个数

这段汇编程序有这个错误Operand must have size,应该怎么改啊?程序功能是算出正数负数和零的个数
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
(这是错误的行数)NEx: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 NEx
MOV SAVE,DH ;将结果传送到内存保存
MOV SAVE+1,DL
MOV SAVE+2,BL
MOV AH,4CH
INT 21H
CSEG ENDS
END START
乐乐怡 1年前 已收到1个回答 举报

cc知己12 幼苗

共回答了14个问题采纳率:100% 举报

CMP [SI],0 这句才不对
应该把[SI]付给一个寄存器里,再比较.

1年前

7
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 2.267 s. - webmaster@yulucn.com