Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/12: Рейтинг темы: голосов - 12, средняя оценка - 4.67
Luciusferatus
0 / 0 / 0
Регистрация: 31.01.2011
Сообщений: 4
1

Передача параметров

31.01.2011, 22:58. Просмотров 2264. Ответов 6
Метки нет (Все метки)

Нужно написать COM программу,чтобы при вводе с командной строки,она считывала параметр(имя файла) и изменяла атрибут этого файла.
Например вводим 22.com 22.asm
программа изменяет атрибуты файла 22.asm.

Я тут сам накатал немного.Поправьте плиз.

MASM
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
code_seg SEGMENT
    ASSUME 
cs:code_seg,ds:code_seg,ss:code_seg,es:code_seg
    ORG 100h
@Start:
 
mov SI,80h
mov di,offset param   ;адрес параметров
xor CX,CX
mov CL,[SI] ;длина в байтах
inc SI      
rep movsb   ;перемещаем строку в буфер
mov Al,30h
stosb 
 
mov dx,offset param
mov ah,43h ;изменяем атрибуты
mov al,01h    
mov cx,0003h
int 21h
 
mov ah,09h ; завершаем программу
lea dx,stroka
int 21h
 
int 20h
 
stroka db "programma zavershena$"
param db 255 dup (?)
code_seg ENDS
 
END @Start

Вроде проблема в том,что 43-я функция не видит в конце строки ноль.Я похоже его не правильно записываю.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.01.2011, 22:58
Ответы с готовыми решениями:

Передача параметров блоком
Как передать в процедуру блоком 2й массив? (в данном случае массив x1). ведь после передачи блока ...

Передача параметров функциям
Доброго времени суток! Уважаемые форумчане, подскажите, почему вот так можно: .data a dd...

Передача параметров в процедуру
Доброго времени суток. Нужна ваша помощь, знатоки! Возникла нужда в изучении процедур и передачи в...

Передача параметров в процедуру
Пока не нашел функцию ltoa, пытался добавить подсчет количества записанных байтов. Добавил параметр...

передача параметров dll fasm
Если у кого есть пример дайте плз. Проблема такая: как передать параметры в длл на фасме и из нее в...

6
Goodwin98
2524 / 820 / 10
Регистрация: 31.05.2009
Сообщений: 1,672
31.01.2011, 23:21 2
Ноль нужно записывать именно нулевым символом, а не цифрой "0"(30h)
1
Luciusferatus
0 / 0 / 0
Регистрация: 31.01.2011
Сообщений: 4
31.01.2011, 23:27  [ТС] 3
Я писал так.Тут ещё какой то косяк.Атрибуты не меняются.Причём если в param записать непосредственно адрес к файлу,а не считывать его с 80h,атрибуты меняются.
0
Goodwin98
2524 / 820 / 10
Регистрация: 31.05.2009
Сообщений: 1,672
31.01.2011, 23:39 4
По адресу [80h] параметры хранятся начиная с пробела, который нужно пропустить и заканчиваются символом odh [enter], который тоже нужно пропустить при перемещении.
0
Luciusferatus
0 / 0 / 0
Регистрация: 31.01.2011
Сообщений: 4
31.01.2011, 23:46  [ТС] 5
Я правильно понимаю,что rep movsb переписывает всё до пробела?
0
Goodwin98
2524 / 820 / 10
Регистрация: 31.05.2009
Сообщений: 1,672
31.01.2011, 23:51 6
Assembler
1
2
3
4
5
6
7
8
9
10
mov SI,80h
mov di,offset param   ;адрес параметров
xor CX,CX
mov CL,[SI] ;длина в байтах
inc SI      
inc si
rep movsb   ;перемещаем строку в буфер
dec di
mov Al,0
stosb
1
Luciusferatus
0 / 0 / 0
Регистрация: 31.01.2011
Сообщений: 4
01.02.2011, 00:02  [ТС] 7
Во!Работает)Спасибо!Только работает почему то только после компиляции.Если из командной строки выходишь и заходишь опять,то не работает.Нужно опять компилировать.
0
01.02.2011, 00:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.02.2011, 00:02

Передача параметров через регистры процесора
Написать программу используя подпрограмму-(программа изменяет все буквы на большие)!!!Передача...

Передача параметров в функцию asm вставкой в C++ Builder 2010
Всем привет! Есть функция static void _stdcall. Вызов её происходит неявно, поскольку указатель...

Внешняя процедура, выполняющая сложение двух чисел (передача параметров через стек)
Помогите, пожалуйста!!!! Написать прорамму с внешней процедурой, выполняющую сложение 2 чисел с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru