int showfind()
{
int pos;
int length;
char name[10];
printf("请输入您想要查询的商品名称:");
scanf_s("%s", name, sizeof(name));
getchar();
length = strlen(name);
pos = findgood(name,length);
return pos;
}
void nofind()
{
printf("未查找到该商品!");
getchar();
putchar('\n');
return;
}
pos = showfind();
if (pos == -1)
{
nofind();
break;
}
.data
good struct
goodsname DB 10dup(0)
inprice DD 0
saleprice DD 0
number DD 0
soldnumber DD 0
profitrate DD 0
good ends
c1 good <'pen',1,2,10,5,0>
c2 good <'pencil',2,3,10,8,0>
c3 good <'book',10,20,100,51,0>
;子程序名:findgood
;功能:查找一件商品的位置
;入口参数:goodname:DWORD
;出口参数:EAX——商品所在位置下标
.386
findgood PROC C goodname:ptr byte
;PUSH EBP
;mov ebp,esp
;PUSH EBX
;PUSH ECX
;PUSH ESI;现场保护
;PUSH EDI
;PUSH ES
;MOV EAX,DS
;MOV ES,EAX
MOV EBX,0;初始化位置
mov edi,[ebp+8]
LOOP1:
mov esi,ebx
imul esi,goodnum
mov esi,offset c1.goodsname
push esi
invoke strcmp,esi,edi
ADD ESP,4
push edi
pop edi
cmp eax,0
JNE XUN1
JMP XUN2
XUN1:
INC EBX
CMP EBX,goodnum
JNE LOOP1
MOV EBX,-1
JMP XUN2
XUN2:
MOV EAX,EBX
;POP ES
;POP EDI
;POP ESI
;POP ECX
;POP EBX
;mov esp,ebp
;POP EBP;现场恢复
RET
代码如上,输入pen也是未找到,该怎么解决?求大佬gao'zhi