· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› Набил код, вроде отладил, но есть глюк!

Посл.отвђт Сообщенiе


Дата: Апр 17, 2004 18:16:09

Задалбался писать прогу, которая делает из файла в дамп.
Но какого-то хрена, если файл больше 3200h начинается
глюк мож кто крутой или опытный глянет на исходник в ат-
таче.
Прога под дос.

На мой ингишь внимание не заострять он мне не родной!

tasm /l dump
tlink /t dump

_542974987__dump.asm


Дата: Апр 18, 2004 10:09:27 · Поправил: q_q

EvilsInterrupt
Внеси в программу следующие изменения:
...
next3:
	mov size_file,dx
	mov size_file+2,ax
; (++
	push ax
	push dx
; вернуть указатель на начало исходного файла
	mov al,0
	mov bx,descryptor1
	xor cx,cx
	xor dx,dx
	call set_fileseek
	pop dx
	pop ax
; ++)
; узнаем меньше ли наш файл 512
; и делем необходимый расчет
	cmp dx,0
...
;-- fileseek1	dw 0,0	; логический указатель файла1
;-- fileseek2	dw 0,0	; логический указатель файла2
...
remember_fileseek proc near
;--	cmp dl,2
;--	je short remember2
;--	mov ax,fileseek1
;--	mov bx,fileseek1+2
;--	ret
;--remember2:
;--	mov ax,fileseek2
;--	mov bx,fileseek2+2
	ret
remember_fileseek endp

remember_set proc near
;--	push bx
;--	call remember_fileseek
;--	mov cx,ax
;--	mov dx,bx
;--	pop bx
;--	call set_fileseek
	ret
remember_set endp

update_fileseek proc near
;--	call remember_fileseek
;--	call add_double
;--	cmp dl,2
;--	je short up2
;--	mov fileseek1,ax
;--	mov fileseek1+2,bx
;--	ret
;--up2:
;--	mov fileseek2,ax
;--	mov fileseek2+2,bx
	ret
update_fileseek endp
...
В общем намутил ты с указателем позиции в файле.
PS ты специально сделал в исходнике столько строк?


Дата: Апр 18, 2004 11:13:26

q_q :)))
Спасибо пойду глядеть!


Дата: Апр 18, 2004 12:07:00

т.е. ты хочешь сказать что если я поставлю логический
указатель наконец файла1, а потом что-то буду делать
с файлом2. То логический указатель который я поставил на конец файла 1так и будет стоять на конце?


Дата: Апр 19, 2004 05:08:42

EvilsInterrupt
У каждого открытого файла свой указатель и его значение зависит только от действий со своим файлом. В твоей задаче прямые манипуляции с указателем вообще не нужны. Т.к. ты последовательно читаешь и последовательно пишеш в файл.


Дата: Апр 19, 2004 11:43:55

Ты так быстро успел ответить, что я успел уже доконать прогу !

923705555__dump.asm


Дата: Апр 19, 2004 11:44:35

Но все равно спасибо, что первый раз откликнулся и дал пищю для ума!


Дата: Апр 19, 2004 11:44:45

Но все равно спасибо, что первый раз откликнулся и дал пищю для ума!


Дата: Апр 19, 2004 12:03:26

EvilsInterrupt
успел уже доконать прогу
imho практичнее имя исходного файла указывать в качестве параметра командной строки, а вывод осуществлять в stdout, а пользователь решит сам на экран или перенаправить в файл.


Дата: Апр 19, 2004 15:35:11

Логично подумаем !


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.048