急求解决 BCB中嵌入汇编的问题!!!!!!!!!!!!!!急急急急急
short int csum_cal;
char * output;
1 asm mov dx, 0
2 asm mov cx, c[0]
3 asm shr cx, 1
4 asm mov ah, 0
5 asm push ds
6 asm mov esi, output
7 asm cld
L1:
8 asm lodsw
9 asm add dx, ax
10 asm loop L1
11 asm pop ds
12 asm mov csum_cal, dx
这段程序可以编译通过,但是运行的时候却提示“asm lodsw”这句出错,我知道lodsw 是把si中的所指的地址的一个字传送到AX中,但是却提示错误,这段程序在DOS下面是可以正确运行的。还有在第6行本来为mov si ,output ,不过我知道在window下si为32位,而char* 只有16位,所以改成了esi。哪位可以帮我修改一下,以便在window下运行,真的不胜感激!!!!急急急