
12.10.2009, 20:42
|
|
Новичок
Регистрация: 29.07.2007
Сообщений: 4
С нами:
9887230
Репутация:
0
|
|
Помогите найти ошибку
Необходимо перехватить прерывание 5h
Но процедура Int_05h не выполняется
Код:
data segment
old_cs dw ?; для хранения «старого» вектора
old_ip dw ?; прерываний с номером 5h
Ubdate db 0; Что нажал пользователь
data ends
code segment
assume cs:code, ds:data
start:
mov ax,data
mov ds,ax
call clrscr
; Запомним текущий вектор 5h
mov ax, 3505h
int 21h
mov old_ip, bx
mov old_cs, es
; Подменим обработчик
push ds ; DS:DX <- Новый обработчик
mov dx, offset Int_05h
;mov ax, seg Int_05h
;mov ds, ax
mov ax, 2505h
int 21h ; Установили его
pop ds
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mov bx,0
make_delay:
mov ah,0
mov al,ubdate
test ax,ax
jnz ekran
jmp nenado
ekran:
mov ubdate,0
;действия
nenado:
jmp make_delay
q:
; Восстановливаем все назад
push ds
mov dx, old_ip
mov ax, old_cs
mov ds, ax
mov ah, 25h
mov al, 9h
int 21h
pop ds
mov ax, 4C00h ; И выходим
int 21h
jmp konec
;////////////////////////////////////////////////////////////////////////////////////////////////////
Int_05h proc
cli ;Запрещаем прерывания
push ax
push bx
push cx
push dx
push si
push di
push es ;и сегментные регистры
push ds
mov ubdate,1
pop ds ;Восстановим сохраненные регистры
pop es
pop di
pop si
pop dx
pop cx
pop bx
pop ax
sti ;Разрешим прерывания
iret ;Выход (возврат в прерванное место)...
Int_05h endp
CLRSCR proc naer ;Очищает экран
push ax
mov ax, 03
int 10h
pop ax
ret
CLRSCR endp
konec:
code ends
end start
Последний раз редактировалось Prototype; 12.10.2009 в 21:19..
|
|
|

13.10.2009, 00:00
|
|
Новичок
Регистрация: 15.04.2008
Сообщений: 1
С нами:
9511744
Репутация:
0
|
|
Добрый вечер. В общем задача такая, необходимо записать символ напрямую в видеобуфер на c++ без использрвания asm вставок. Можно ли это сделать в Visual Studio? и где нибудь это можно сделать? =) Желателен пример кода...
Заранее спасибо.
|
|
|
Ребят помоги пожалуста решить задачи по Паскалю |

13.10.2009, 01:46
|
|
Постоянный
Регистрация: 22.09.2006
Сообщений: 531
С нами:
10333826
Репутация:
369
|
|
Ребят помоги пожалуста решить задачи по Паскалю
чесно говоря я в этом не шарю друг попросил решить зачет блин на кону
с меня много много плюсов возможно даже денежкой на wmz (баксов 5) отблагодарю чисто символически
заранее спасибо ответы в ЛС или в АСЬку скидывайте (в профиле)
че блин никому + и денег ненадо что ль первыйй раз такое вижу )
Последний раз редактировалось satana8920; 13.10.2009 в 17:30..
|
|
|

14.10.2009, 06:23
|
|
Познающий
Регистрация: 21.08.2008
Сообщений: 40
С нами:
9326797
Репутация:
12
|
|
Сообщение от satana8920
чесно говоря я в этом не шарю друг попросил решить зачет блин на кону
с меня много много плюсов возможно даже денежкой на wmz (баксов 5) отблагодарю чисто символически
заранее спасибо ответы в ЛС или в АСЬку скидывайте (в профиле)
че блин никому + и денег ненадо что ль первыйй раз такое вижу )
скрины плохо видно! задачи скорее по математики чем по программированию. если пояснишь как решать то сами программы некоторые за час можно написать.
|
|
|

14.10.2009, 08:41
|
|
Постоянный
Регистрация: 22.09.2006
Сообщений: 531
С нами:
10333826
Репутация:
369
|
|
Иван8 контакт в ПМ пиши все обьясню
|
|
|

14.10.2009, 20:40
|
|
Познающий
Регистрация: 13.12.2007
Сообщений: 56
С нами:
9689730
Репутация:
51
|
|
Помогите с UNIX'ом, пожалуйста..
Вот такое задание:
Процесс 1 открывает файл и после этого порождает потомка 2. Один процесс пишет в файл один байт, посылает другому процессу сигнал, другой читает из файла один байт, выводит прочитанное на экран и посылает сигнал первому процессу. Организовать N циклов запись/чтение.
Буду очень благодарен..и "+" поставлю =)
|
|
|

15.10.2009, 13:04
|
|
Участник форума
Регистрация: 05.06.2009
Сообщений: 127
С нами:
8912059
Репутация:
249
|
|
Сообщение от winlogon.exe
1) Определить является ли треугольник со сторонами a,b,c равнобедренным.
Код:
program treug;
var
a,b,c:real;
begin
writeln('Enter a');
readln(a);
writeln('Enter b');
readln(b);
writeln('Enter c');
readln(c);
if (a=b and a<>c) then begin
writeln('Treyrolinuk ravnobedrenni');
exit;
end;
if (a=c and b<>c) then begin
writeln('Treyrolinuk ravnobedrenni');
exit;
end;
if (c=b and a<>b) then begin
writeln('Treyrolinuk ravnobedrenni');
exit;
end;
writeln('Treyrolbnik ne ravnobedrennii');
readln;
end.
Результат работы:
Код:
Enter a
5
Enter b
5
Enter c
4
Treyrolinuk ravnobedrenni
Enter a
4
Enter b
5
Enter c
5
Treyrolinuk ravnobedrenni
Enter a
4
Enter b
5
Enter c
4
Treyrolinuk ravnobedrenni
Enter a
5
Enter b
5
Enter c
5
Treyrolbnik ne ravnobedrennii
Enter a
5
Enter b
4
Enter c
3
Treyrolbnik ne ravnobedrennii
|
|
|

15.10.2009, 13:11
|
|
Участник форума
Регистрация: 05.06.2009
Сообщений: 225
С нами:
8912421
Репутация:
297
|
|
какой язык программирования?
|
|
|

15.10.2009, 13:39
|
|
Участник форума
Регистрация: 05.06.2009
Сообщений: 225
С нами:
8912421
Репутация:
297
|
|
ага спасибо..) Отблагодарю как смогу. Еще будет?
|
|
|

15.10.2009, 13:47
|
|
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
С нами:
10021597
Репутация:
905
|
|
условие задачи смахивает на нахождение НОК =)
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|