PDA

View Full Version : سوال: Error Illegal indexing mode



woeful
جمعه 04 تیر 1389, 10:11 صبح
سلام

این کدیه که من برای جمع دو عدد اسکی نوشتم حالا (یه قسمت از کل کد)وقتی Assemble میکنم به کدهایی که قرمز رنگ کردم Illegal indexing mode میده و به سبزه Illegal memory reference میده مشکل کجاست ؟؟



ADD_ASC PROC
CLC
MOV BL,BUFCOUNT1
MOV DL,BUFCOUNT2
SUB BH,BH
MOV DH,BH
SUB BX,1
SUB DX,1
CMP BX,DX
JC LB1
MOV CX,BX
JMP BACK
LB1:
MOV CX,DX
BACK:
MOV AL,BUFAREA1[BX]
ADC AL,BUFAREA2[DX]
AAA
MOV RESULT1[CX],AL
CMP DX,0
JE B2_LOW
CMP BX,0
JE B1_LOW
DEC BX
DEC DX
DEC CX
JMP BACK
B2_LOW:
CMP BX,0
JE EXIT
MOV CX,BX
ADD CX,1
BACK2:
MOV RESULT1[BX],BUFAREA1[BX]
LOOP BACK2
JMP EXIT1
B1_LOW:
CMP DX,0
JE EXIT1
MOV CX,DX
ADD CX,1
BACK3:
MOV AL,BUFAREA2[DX]
MOV RESULT1[DX],AL
LOOP BACK3
EXIT1:
RET
ADD_ASC ENDP

tdkhakpur
جمعه 04 تیر 1389, 12:32 عصر
خب مشخصا کامپایلر شما نمیتواند نوع ایندکش را برای شما تفسیر و برای کامپایل ارسال کنید شما میتواندی بصورت زیر این کار را انجام بدید نمونه برای یکی از خطهای شماست بقیه به همین شکل هستند.


MOV AL,BUFAREA1[BX]
ADC AL,BUFAREA2[DX]
AAA
MOV RESULT1[CX],AL
بصورت
Lea bx, BUFAREA1
MOV AL, byte ptr [BX]
یا
Lea bp, BUFAREA1
MOV AL, byte ptr [bp]