IPB
ЛогинПароль:

> ПРАВИЛА РАЗДЕЛА!!!

1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!

> Атрибуты файла, ассемблер
сообщение
Сообщение #1


Знаток
****

Группа: Пользователи
Сообщений: 306
Пол: Мужской
Реальное имя: Евгений

Репутация: -  0  +


Доброго времени суток! У меня тут заданьеце : вывести атрибуты файла, в диалоговой форме произвести переустановку атрибутов. Реализовал первую часть - вывод атрибутов, использую функцию 43h прерывания 21h. Но возникает какая-то ошибка при вызове прерывания. В чём проблема?

data segment
path db "E:\data.txt",0
mes1 db 13,10,"read\write$"
mes2 db 13,10,"read only$"
mes3 db 13,10,"X-files$"
mes4 db 13,10,"system$"
data ends

code segment
assume cs:code, ds:data
start: mov ax,data
mov ds,ax

mov ax, 43h
mov al,0
mov dx, offset path
int 21h

add ax, '0'
int 29h

m1: cmp cx,00h
jne m2
mov ah, 09h
mov dx,offset mes1
int 21h
jmp mx

m2: cmp cx,01h
jne m3
mov ah, 09h
mov dx,offset mes2
int 21h
jmp mx

m3: cmp cx,02h
jne m4
mov ah, 09h
mov dx,offset mes3
int 21h
jmp mx

m4: cmp cx,04h
mov ah, 09h
mov dx,offset mes4
int 21h
jmp mx

mx: mov ax, 4c00h
int 21h
code ends
end start

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Знаток
****

Группа: Пользователи
Сообщений: 306
Пол: Мужской
Реальное имя: Евгений

Репутация: -  0  +


Теперь мне нужно сделать, чтоб всё это работало в диалоговой форме.
Как сделать, чтоб при нажатии соответствующей кнопки, устанавливался/сбрасывался атрибут? то есть своеобразный case организовать...
а вот проверку установить\сбросить атрибут опять же через and + условие jz ?
Вот зачатки всего этого (меню пока что)

data segment
path db "E:/data.txt",0
mes db 13,10,"R/W$"
mes1 db 13,10,"RO$"
mes2 db 13,10,"Hidden$"
mes3 db 13,10,"System$"
mes4 db 13,10,"Label$"
mes5 db 13,10,"Dir$"
mes6 db 13,10,"Archive$"

mesmen db 13,10,"ON\OFF RO pressed (1)",13,10,"ON\OFF Hidden pressed (2)",13,10,"ON\OFF System pressed (3)",13,10,"ON\OFF Label pressed (4)",13,10,"ON\OFF Dir pressed (5)",13,10,"ON\OFF Archive pressed (6)$"

data ends

code segment
assume cs:code, ds:data

showAtr proc

m : mov ax,cx
cmp ax,0000h
jnz m1
mov ah, 09h
mov dx,offset mes
int 21h

m1: mov ax,cx
and ax,0001h
jz m2
mov ah, 09h
mov dx,offset mes1
int 21h


m2: mov ax,cx
and ax,0002h
jz m3
mov ah, 09h
mov dx,offset mes2
int 21h

m3: mov ax,cx
and ax,0004h
jz m4
mov ah, 09h
mov dx,offset mes3
int 21h

m4: mov ax,cx
and ax,0008h
jz m5
mov ah, 09h
mov dx,offset mes4
int 21h

m5: mov ax,cx
and ax,0010h
jz m6
mov ah, 09h
mov dx,offset mes5
int 21h

m6: mov ax,cx
and ax,0020h
jz m7
mov ah, 09h
mov dx,offset mes6
int 21h
m7:
ret

showAtr endp


start: mov ax,data
mov ds,ax

mov ah, 09h
mov dx,offset mesmen
int 21h

mov ah, 43h
mov al,0
mov dx, offset path
int 21h

jc error

call showAtr

or cx,0008h

call showAtr

mov ax,0001h
not ax
and cx,ax

mov ah, 43h
mov al,1
mov dx, offset path
int 21h

jc error

call showAtr

jmp mx

error: add ax,'0'
int 29h

mx: mov ax, 4c00h
int 21h

code ends
end start


 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Rocket   Атрибуты файла   16.02.2009 3:50
volvo   Ну, наверное все-таки path db "E:/data.txt…   16.02.2009 4:20
Rocket   Ну, наверное все-таки [code=asm]path db "E:/…   17.02.2009 0:31
volvo   Ctrl+A... Программу сейчас гляну...   17.02.2009 0:43
volvo   Так... А в программе-то у тебя ошибка в том, что т…   17.02.2009 1:25
Rocket   Так, исправил следующем образом: data segment pa…   18.02.2009 2:09
volvo   Где ты выкопал этот 00h, не расскажешь? Документац…   18.02.2009 2:12
Rocket   Где ты выкопал этот 00h, не расскажешь? Документа…   18.02.2009 2:15
volvo   P.S. and ax,0000h jz m1 :blink: ты на са…   18.02.2009 2:16
Rocket   P.S. and ax,0000h jz m1 :blink: ты на с…   18.02.2009 2:27
Rocket   Вот пытаюсь произвести установку атрибута "re…   18.02.2009 3:53
volvo   Естественно, ты устанавливаешь комбинацию атрибуто…   18.02.2009 5:10
Rocket   Естественно, ты устанавливаешь комбинацию атрибут…   20.02.2009 1:34
volvo   Ага, and-ом, только не просто and-ом, а: mov ah, …   20.02.2009 2:10
Rocket   Теперь мне нужно сделать, чтоб всё это работало в …   20.02.2009 3:55
volvo   На самом деле все просто: ; вывел меню ; получ…   20.02.2009 4:45
Rocket   Вот, что у меня получилось: data segment path db…   20.02.2009 23:24
volvo   А что ж ты сделал тогда? Что за привычка - ВЫБРОСИ…   21.02.2009 0:36
Rocket   А что ж ты сделал тогда? Что за привычка - ВЫБРОС…   21.02.2009 3:17


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 9.05.2024 23:08
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name