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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2011, 19:32   #1
7747853
 
Регистрация: 25.04.2011
Сообщений: 3
По умолчанию Написание Одномерного массива + Резидентной программы на Assembler

Товарищи, очень нужна помощь "знающих" людей. Сам в этом деле не сведущь, поэтому надеюсь только на вас.
Нужно написать 2 программы:

1)Сформировать одномерный массив A={ai} (i=1...30), где ai вычисляется по формулам ai=(i+75)/100+(i/2+i/3) 0<i<31


2)Разработать алгоритм и написать резидентную программу, выводящую на экран характеристики видеосистемы. При нажатии комбинации клавиш Ctrl/S - вывести на экран данные, Ctrl/X - выгрузить программу из оперативной памяти.


Если возможно, то с объяснением.

Последний раз редактировалось 7747853; 25.04.2011 в 20:23.
7747853 вне форума Ответить с цитированием
Старый 25.04.2011, 19:37   #2
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Возможно и не исключено что при указании Языка программирования попытки помощи вам, будут гораздо продуктивнее.
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 25.04.2011, 20:23   #3
7747853
 
Регистрация: 25.04.2011
Сообщений: 3
По умолчанию

Прошу прощения, тормознул, исправил название.
Язык программирования - Ассемблер.
7747853 вне форума Ответить с цитированием
Старый 20.05.2012, 22:35   #4
openatom
 
Регистрация: 20.05.2012
Сообщений: 5
По умолчанию

Цитата:
Сообщение от 7747853 Посмотреть сообщение
Прошу прощения, тормознул, исправил название.
Язык программирования - Ассемблер.
Советую почитать...)
http://shackmaster.narod.ru/tsr.htm
openatom вне форума Ответить с цитированием
Старый 01.07.2012, 18:01   #5
openatom
 
Регистрация: 20.05.2012
Сообщений: 5
По умолчанию

Народ, настрочил прогу, которая выводит характеристики видеосистемы, но она зависает на уровне компиляции, подскажите где ошибки и что нужно исправить?

Код:
.286
CSEG SEGMENT
ASSUME CS:CSEG, DS:CSEG, SS:CSEG
org 100h
start:
        jmp init
oldint9 dd ?    
        dw 0ABCDh
int9:
        push AX                 ;Сохранение регистров
        push BX
        push CX
        push DX
        push BP
        push ES
        push DS
        
        xor AX,AX               ;Выход при Ctrl+X
        mov ES,AX
        mov AL,ES:0417h         
        test AL,00000100b       
        jz no
        in AL,60h
        cmp AL,2Dh              ;Сравнение со скан кодом X (2Dh)        
        je unload1
        cmp AL,1Fh              ;Сравнение со скан кодом S (1Fh)
        je stat
no:
        jmp noact
unload1:
        jmp unload
stat:
        mov bx,0000h
    mov cx,64d
    go:
        mov ax,[bx]
    mov di,offset envir+10
    wrd_asc
    add bx,4d
    inc si
    loop go
    
wrd_asc:
        pusha
    mov bx,0F000h
    mov dl,12
    mov cx,4
cccc:
        push cx
    push ax
    and ax,bx
    mov cl,dl
    shr ax,cl
    bin_asc
    mov byte ptr [si],al
    inc si
    pop ax
    shr bx,4
    sub dl,4
    pop cx
    loop cx
    popa
bin_asc:
        cmp al,9
    ja lettr
    add al,30h
    jmp ok
lettr:
        add al,37h
envir db 'Вывод=****h',13,10
    
noact:  
        pop DS          ;Восстановление регистров
        pop ES
        pop BP
        pop DX
        pop CX
        pop BX
        pop AX
        jmp CS:oldint9 ; вернемся к старому обработчику
 
unload: 
        push DS
 
        mov AX,2509h            ;Восстановление исходного
                                ;вектора 9 прерывания
        lds DX,CS:oldint9       
        int 21h
 
        pop DS
 
        mov ES,CS:002Ch         ;Выгрузка окружения
        mov AH,49h
        int 21h
        
        push CS                 ;Выгрузка программы
        pop ES
        mov AH,49h
        int 21h
 
        jmp noact
endrz:
mes_l   db 'Rezident loaded',0Dh,0Ah,'$'
mes_nol db 'Rezident is loaded',0Dh,0Ah,'$'
init:
        mov AX,3509h            ;Проверка на повторную загрузку,
        int 21h                 ;сохранение старого
        cmp ES:[BX-2],0ABCDh    ;и установка нового вектора 9 прер.
        je exit
        mov word ptr oldint9+2,ES
        mov word ptr oldint9,BX
        mov AX,2509h
        mov DX,offset int9
        int 21h         
 
        mov AH,9                
        mov DX,offset mes_l
        int 21h
 
        mov DX,offset endrz     ;Завершаем программу,
        int 27h                 ;оставляя резидентную часть
exit:   
        mov AH,9                
        mov DX,offset mes_nol
        int 21h
        
        mov AX,4C00h
        int 21h
CSEG ENDS
        END start
openatom вне форума Ответить с цитированием
Старый 02.07.2012, 07:02   #6
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Цитата:
она зависает на уровне компиляции
что пишет при этом? на что ругается?
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 02.07.2012, 09:24   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

TASM выдаёт ошибки при компиляции. возможно, что это какие-то хитрые макрокоманды.
но мне не очень понятно, что автор программы хотел этим сказать:
Цитата:
Код:
    mov di,offset envir+10
    wrd_asc
    add bx,4d
    inc si
    loop go
    
wrd_asc:
    pusha
    mov bx,0F000h
    mov dl,12
    mov cx,4
cccc:
    push cx
    push ax
    and ax,bx
    mov cl,dl
    shr ax,cl
    bin_asc

вот здесь очевидная ошибка - в команде loop нужно указывать метку
Цитата:
Код:
    shr bx,4
    sub dl,4
    pop cx
    loop cx
    popa
тут тоже очевидно: метка перехода ok не определена в программе:
Цитата:
Код:
bin_asc:
    cmp al,9
    ja lettr
    add al,30h
    jmp ok
это то, что касается компиляции.
на собственно алгоритм я даже не смотрел...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
!Модификация одномерного массива! Dmitry73 Помощь студентам 1 01.12.2010 23:33
матрица из одномерного массива hunter03 Помощь студентам 3 30.11.2010 22:34
матрица из одномерного массива hunter03 Паскаль, Turbo Pascal, PascalABC.NET 1 30.11.2010 20:59
C# - из одномерного массива -> двумерный Vovan_Super Общие вопросы .NET 2 06.07.2010 19:27
Задача одномерного массива на Си++ Клеом Помощь студентам 1 26.09.2009 21:49