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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2009, 12:13   #1
Кристина13
Пользователь
 
Регистрация: 11.06.2009
Сообщений: 12
По умолчанию программа в командной сроке

записать в файл file.txt имена файлов file1.txt,file2.txt,file3.txt для записи использовать функцию 28.
вот программный код,но он не совсем работает...
Код:
jmp 139
db 03
db 'file1.  '
db 'txt'
dw 0000
dw 0000
dw 0000,0000
dw 0000
dw 0000,0000,0000,0000,0000
db 00
dw 0009,0000
db 'file2.txtfile.txt$'
mov ah,0f
mov dx,102
int 21
mov dx,127
mov ah,1a
int 21
mov dx,0001
mov [110],dx
mov cx,2
mov ah,28
mov dx,102
int 21
mov ah,10
mov dx,102
int 21
ret

Последний раз редактировалось rpy3uH; 11.06.2009 в 13:28.
Кристина13 вне форума Ответить с цитированием
Старый 11.06.2009, 13:13   #2
MalCer
Форумчанин
 
Аватар для MalCer
 
Регистрация: 15.07.2008
Сообщений: 615
По умолчанию

Кристина, вы либо выдрали код из отладчика и пытаетесь скомпилить? Что именно не работает? Вроде всё нормально
xor eax, eax
xchg [eax], eax
MalCer вне форума Ответить с цитированием
Старый 11.06.2009, 14:56   #3
Кристина13
Пользователь
 
Регистрация: 11.06.2009
Сообщений: 12
По умолчанию

в file.txt выводится помимо того что необходимо еще куча каких то символов

и еще при нажатии G после сохранения выдает ошибку что недоступен FCB

Последний раз редактировалось rpy3uH; 11.06.2009 в 19:06.
Кристина13 вне форума Ответить с цитированием
Старый 11.06.2009, 20:21   #4
MalCer
Форумчанин
 
Аватар для MalCer
 
Регистрация: 15.07.2008
Сообщений: 615
По умолчанию

Желательно бы увидеть не дизассемблированный листинг программы
xor eax, eax
xchg [eax], eax
MalCer вне форума Ответить с цитированием
Старый 12.06.2009, 11:40   #5
Кристина13
Пользователь
 
Регистрация: 11.06.2009
Сообщений: 12
По умолчанию

только такая версия прграммы....может бть ее можно как то по другому составить?
Кристина13 вне форума Ответить с цитированием
Старый 12.06.2009, 11:55   #6
MalCer
Форумчанин
 
Аватар для MalCer
 
Регистрация: 15.07.2008
Сообщений: 615
По умолчанию

jmp 139 -это видимо обход данных на mov ah,0f
mov dx,102 - это db 'file1. ' (offset-смещение)
и т.д.
У вас просто все заменемо адресами, неудивительно что не получается, ведь при компиляции программы вместо того чтобы прыгнуть на нужную метку, прыгает на другую
xor eax, eax
xchg [eax], eax
MalCer вне форума Ответить с цитированием
Старый 12.06.2009, 17:24   #7
Кристина13
Пользователь
 
Регистрация: 11.06.2009
Сообщений: 12
По умолчанию

адресами нельзя заменять разве?подскажите пожалуйста,как же тогда правильно?
Кристина13 вне форума Ответить с цитированием
Старый 12.06.2009, 18:40   #8
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Вот так должна бы выглядеть ваша программа.
Код:
.model tiny
.code
org 100h
start:
	mov ah,16h
	mov dx,offset FCB
	int 21h
	mov dx,offset data
	mov ah,1ah
	int 21h
	mov dx,0001h
	mov word ptr [FCB+14],dx
	mov cx,sizeof data
	mov ah,28h
	mov dx,offset FCB
	int 21h
	mov ah,10h
	mov dx,offset FCB
	int 21h
	ret
.data
FCB db 00
db 'file1   '
db 'txt'
db 25 DUP (0)
data db 'file2.txtfile.txt'
end start
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 14.06.2009, 13:28   #9
Кристина13
Пользователь
 
Регистрация: 11.06.2009
Сообщений: 12
По умолчанию

так выглядеть в командной строке?
Кристина13 вне форума Ответить с цитированием
Старый 14.06.2009, 14:53   #10
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

В командной строке это как? Наверно вы ее в debug'е набираете. В таком случае вот так.
Код:
jmp 139
db 03
db 'file1   '
db 'txt'
dw 0000
dw 0000
dw 0000,0000
dw 0000
dw 0000,0000,0000,0000,0000
db 00
dw 0000,0000
db 'file2.txtfile.txt$'
mov ah,16
mov dx,102
int 21
mov dx,127
mov ah,1a
int 21
mov dx,0001
mov [110],dl
mov cx,11
mov ah,28
mov dx,102
int 21
mov ah,10
mov dx,102
int 21
ret
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выполнение командной строки z3rg Общие вопросы C/C++ 4 17.04.2009 22:26
Параметры из командной строки ProGg Паскаль, Turbo Pascal, PascalABC.NET 5 13.02.2009 00:17
Помогите С командной строкой manax Помощь студентам 6 08.11.2008 18:03
Помогите с командной строкой ARES-IVAN Помощь студентам 3 02.11.2008 19:22
Работа с командной строкой lyryks Помощь студентам 2 16.11.2007 13:06