1. Заголовок или название темы должно быть информативным 2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE] 3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора. 5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM! 6. Проверяйте программы перед тем, как выложить их на форум!!
Доброго времени суток! У меня тут заданьеце : вывести атрибуты файла, в диалоговой форме произвести переустановку атрибутов. Реализовал первую часть - вывод атрибутов, использую функцию 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
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)$"
mes_error_1 db 13,10,"Illegal button!$"
myAttr DW ?
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, 43h mov al,0 mov dx, offset path int 21h
jnc m_
add ax,'0' int 29h jmp mx
m_: call showAtr
xor ax,ax mov ah, 09h mov dx,offset mesmen int 21h
mov ah,01h int 21h
sub al,'0' dec al
mov ah,al sub ah,1 jz m_1
mov ah,al sub ah,2 jz m_2
mov ah,al sub ah,3 jz m_3
mov ah,al sub ah,4 jz m_4
mov ah,al sub ah,5 jz m_5
mov ah,al sub ah,6 jz m_6
mov ah, 09h mov dx,offset mes_error_1 int 21h jmp mx