Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.03.2009, 18:29   #1
ALEKS_STRELOK
 
Регистрация: 16.03.2009
Сообщений: 4
Восклицание помогите разобратса с ошибками

вот исходник:
.8086
EXTRN TO_386:FAR
PUBLIC TEXT
PUBLIC TX_80386
PUBLIC TX_80486
PUBLIC TX_80586
PUBLIC VIRT
DATA SEGMENT PARA
TX_8088 DB'PROC 8088',13,10,'$'
TX_8086 DB'PROC 8086',13,10,'$'
TX_NEC20 DB'PROC NEC20',13,10,'$'
TX_NEC30 DB'PROC NEC30',13,10,'$'
TX_80186 DB'PROC 80186',13,10,'$'
TX_80188 DB'PROC 80188',13,10,'$'
TX_80286 DB'PROC 80286',13,10,'$'
TX_80386 DB'PROC 80286',13,10,'$'
TX_80486 DB'PROC 80286',13,10,'$'
TX_80586 DB'PROC 80286',13,10,'$'
VIRT DB 'VIRTYAL REGIM',13,10,'$'
DATA ENDS
ST1 SEGMENT PARA STACK 'STACK'
DW 50 DUP (00)
ST1 ENDS
CODE SEGMENT PARA PUBLIC
ASSUME CS:CODE, DS:DATA, SS:ST1
BEGIN:
MOV AX, DATA
MOV DS, AX
PUSH SP
POP AX
CMP SP, AX
JNZ BELOW_286
MOV AX,7000H
PUSH AX
POPF
PUSHF
POP AX
TEST AX,7000H
JNZ NO_286
;286
LEA DX,TX_80286
CALL FAR PTR TEXT
JMP _END
NO_286:
JMP TO_386
BELOW_286:
CALL TBUFFER
MOV BP,CX
MOV CL,33
MOV AX,0FFFFH
SHL AX,CL
JZ NO_186
CMP BP,0
JNZ _188
LEA DX, TX_80186
CALL FAR PTR TEXT
JMP SHORT _END
_188:
LEA DX,TX_80188
CALL FAR PTR TEXT
JMP SHORT _END
NO_186:
MOV CX, 0FFFFH
JMP SHORT $+2
DB 0F3H,026H,0ACH; REP LODSB E:
JCXZ NEC
CMP BP,0
JNZ _88
LEA DX,TX_8086
CALL FAR PTR TEXT
JMP SHORT _END
_88:
LEA DX,TX_8088
CALL FAR PTR TEXT
JMP SHORT _END
NEC:
CMP BP,0
JNZ NEC20
LEA DX,TX_NEC30
CALL FAR PTR TEXT
JMP SHORT _END
NEC20:
LEA DX,TX_NEC20
CALL FAR PTR TEXT
_END:
MOV AH,4CH
INT 21H
TBUFFER PROC NEAR
PUSH ES
PUSH DI
STD
PUSH CS
POP ES
LEA DI, CS:MET2
MOV AL, BYTE PTR CS:MET1
MOV CX,3
CLI
REP STOSB
CLD
NOP
NOP
NOP
INC CX
MET1:STI
MET2:STI
POP DI
POP ES
RETN
TBUFFER ENDP
TEXT PROC FAR
MOV AH,9
INT 21H
RETF
TEXT ENDP
CLI
REP STOSB
CLD
NOP
NOP
NOP
INC CX
.MODEL TINY
.CODE
.186
ORG 100H
START:
CLD
MOV dx,offset ems_driver
MOV AX,3D00H
INT 21H
JC NO_EMMX
MOV AX,4400H
INT 21H
JC NO_EMS
TEST DX,80H
JZ NO_EMS
MOV AH,46H
INT 67H
TEST AH,AH
JNZ NO_EMS
MOV AH,AL
AND AL,0FH
SHR AH,4
CALL OUTPUT_VERSION
MOV AH,42H
INT 67H
SHL DX,4
SHL BX,4
MOV AX,BX
MOV SI,OFFSET EMS_FREEMEM
CALL OUTPUT_INF
NO_EMS:
MOV AH,3EH
INT 21H
NO_EMMX:
MOV AX,4300H
INT 2FH
CMP AL,80H
JNE NO_XMS
MOV AX,4310H
INT 2FH
MOV WORD PTR ENTRY_PT,BX
MOV WORD PTR ENTRY_PT+2,ES
PUSH DS
POP ES
MOV AH,00
CALL DWORD PTR ENTRY_PT
MOV BYTE PTR MEM_VERSION,'X'
CALL OUTPUT_VERSION
MOV AH,08H
XOR BX,BX
CALL DWORD PTR ENTRY_PT
MOV BYTE PTR TOTALMEM,'X'
MOV SI,OFFSET XMS_FREEMEM
OUTPUT_INFO:
PUSH AX
MOV AX,DX
MOV BP,OFFSET TOTALMEM
CALL OUTPUT_INFO
POP AX
MOV BP,SI
OUTPUT_INFO
MOV DI,OFFSET HEX2DEC_WORD
MOV BX,10
XOR CX,CX
DIVLP: XOR DX,DX
DIV BX
ADD DL,'0'
PUSH DX
INC CX
TEST AX,AX
JNZ DIVLP
STORE:
POP AX
STOSB
LOOP STORE
MOV BYTE PTR ES:[DI],'$'
MOV DX,BP
MOV AH,9
INT 21H
MOV DX,OFFSET HEX2DEC_WORD
INT 21H
MOV DX,OFFSET EOL
INT 21H
NO_XMS:RET
UTPUT_VERSION:
OR AX,3030H
MOV BYTE PTR MAJOR,AH
MOV BYTE PTR MINOR,AL
MOV DX,OFFSET MEM_VERSION
MOV AH,9
INT 21H
RET
ENS_DRIVE DB "EMMXXXX0",0
MEM_VERSION DB "EMS VERS"
MAJOR DB "0."
MINOR DB "0 OBNARUZHEN", 0DH,0AH,'$'
TOTALMEM DB "EMS PAMYAT:$"
EMS_FREEMEM DB "EMS PAMYAT:$"
EOL DB 'K',0DH,0AH,'$'
XMS_FREEMEM DB
ENTRY_PT:
HEX2DEC_WORD EQU ENTRY_PT+4
END START

MA
MOV CX, 0FFFFH
ALEKS_STRELOK вне форума Ответить с цитированием
Старый 16.03.2009, 18:38   #2
ALEKS_STRELOK
 
Регистрация: 16.03.2009
Сообщений: 4
По умолчанию а вот листинг

147 0000 .MODEL TINY
148 0000 .CODE
149 .186
150 ORG 100H
151 0100 START:
152 0100 FC CLD
153 0101 BA 0000 MOV dx,offset ems_driver
**Error** la2.asm(141) Undefined symbol: EMS_DRIVER
154 0104 B8 3D00 MOV AX,3D00H
155 0107 CD 21 INT 21H
156 0109 72 35 JC NO_EMMX
157 010B B8 4400 MOV AX,4400H
158 010E CD 21 INT 21H
159 0110 72 2A JC NO_EMS
160 0112 F7 C2 0080 TEST DX,80H
161 0116 74 24 JZ NO_EMS
162 0118 B4 46 MOV AH,46H
163 011A CD 67 INT 67H
164 011C 84 E4 TEST AH,AH
165 011E 75 1C JNZ NO_EMS
166 0120 8A E0 MOV AH,AL
167 0122 24 0F AND AL,0FH
168 0124 C0 EC 04 SHR AH,4
169 0127 E8 FED6 CALL OUTPUT_VERSION
**Error** la2.asm(157) Undefined symbol: OUTPUT_VERSION
175 0136 BE 01F0r MOV SI,OFFSET EMS_FREEMEM
176 0139 E8 FEC4 CALL OUTPUT_INF
**Error** la2.asm(164) Undefined symbol: OUTPUT_INF
177 013C NO_EMS:
178 013C B4 3E MOV AH,3EH
179 013E CD 21 INT 21H
180 0140 NO_EMMX:
181 0140 B8 4300 MOV AX,4300H
182 0143 CD 2F INT 2FH
183 0145 3C 80 CMP AL,80H
184 0147 75 66 JNE NO_XMS
185 0149 B8 4310 MOV AX,4310H
186 014C CD 2F INT 2FH
187 014E 89 1E 0201r MOV WORD PTR ENTRY_PT,BX
188 0152 8C 06 0203r MOV WORD PTR ENTRY_PT+2,ES
189 0156 1E PUSH DS
190 0157 07 POP ES
191 0158 B4 00 MOV AH,00
192 015A FF 1E 0201r CALL DWORD PTR ENTRY_PT
193 015E C6 06 01CBr 58 MOV BYTE PTR MEM_VERSION,'X'
194 0163 E8 FE9A CALL OUTPUT_VERSION
**Error** la2.asm(182) Undefined symbol: OUTPUT_VERSION
195 0166 B4 08 MOV AH,08H
196 0168 33 DB XOR BX,BX
197 016A FF 1E 0201r CALL DWORD PTR ENTRY_PT
198 016E C6 06 01E4r 58 MOV BYTE PTR TOTALMEM,'X'
199 0173 BE 0200r MOV SI,OFFSET XMS_FREEMEM
200 0176 OUTPUT_INFO:
201 0176 50 PUSH AX
202 0177 8B C2 MOV AX,DX
203 0179 BD 01E4r MOV BP,OFFSET TOTALMEM
204 017C E8 FFF7 CALL OUTPUT_INFO
205 017F 58 POP AX
206 0180 8B EE MOV BP,SI
207 OUTPUT_INFO
**Error** la2.asm(195) Illegal instruction
208 0182 BF 0205r MOV DI,OFFSET HEX2DEC_WORD
209 0185 BB 000A MOV BX,10
210 0188 33 C9 XOR CX,CX
211 018A 33 D2 DIVLP: XOR DX,DX
212 018C F7 F3 DIV BX
213 018E 80 C2 30 ADD DL,'0'
214 0191 52 PUSH DX
215 0192 41 INC CX
216 0193 85 C0 TEST AX,AX
217 0195 75 F3 JNZ DIVLP
239 01C2 45 4D 4D 58 58 58 58+ ENS_DRIVE DB "EMMXXXX0",0
240 30 00
241 01CB 45 4D 53 20 56 45 52+ MEM_VERSION DB "EMS VERS"
242 53
243 01D3 30 2E MAJOR DB "0."
244 01D5 30 20 4F 42 4E 41 52+ MINOR DB "0 OBNARUZHEN", 0DH,0AH,'$'
245 55 5A 48 45 4E 0D 0A+
246 24
247 01E4 45 4D 53 20 50 41 4D+ TOTALMEM DB "EMS PAMYAT:$"
248 59 41 54 3A 24
249 01F0 45 4D 53 20 50 41 4D+ EMS_FREEMEM DB "EMS PAMYAT:$"
250 59 41 54 3A 24
251 01FC 4B 0D 0A 24 EOL DB 'K',0DH,0AH,'$'
252 0200 ?? XMS_FREEMEM DB
*Warning* la2.asm(234) Missing operand - trailing ? assumed
253 0201 ENTRY_PT:
254 = DGROUP:0205 HEX2DEC_WORD EQU ENTRY_PT+4
255 END START
*Warning* la2.asm(237) Open segment: CODE
ALEKS_STRELOK вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа над ошибками, удаление Linux begemotikdin Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) 5 30.11.2008 01:16
Помогите разобраться с ошибками в исходнике С++ Go6a Помощь студентам 1 03.05.2008 17:43
сообщения с ошибками в delphi Alar Общие вопросы Delphi 0 30.10.2006 00:43