Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Исправить дизассемблированный код, Помогите исправить код 
:(
    Опции темы
Dozen
  Дата 10.7.2013, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 1.12.2010

Репутация: нет
Всего: нет



Добрый вечер, подскажите ,пожалуйста,что необходимо сисправить ,чтобы данная программа запустилась без ошибок и продолжала работу, т.е. не выводила сразу при запуске сообщение :"The driver is not suitable for this type of microcomputer."

Код

PAGE  59,132

;ЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ
;ЫЫ                                                     ЫЫ
;ЫЫ                K                                     ЫЫ
;ЫЫ                                                     ЫЫ
;ЫЫ      Created:   4-Mar-95                                         ЫЫ
;ЫЫ      Passes:    5          Analysis    Options on: none                 ЫЫ
;ЫЫ      (C) 1992                                             ЫЫ
;ЫЫ                                                     ЫЫ
;ЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ

target        EQU   'T3'                      ; Target assembler: TASM-3.2

include  srmacros.inc


; The following equates show data references outside the range of the program.

data_1e        equ    417h
data_15e    equ    0E000h
data_16e    equ    0FFF5h

;------------------------------------------------------------  seg_a   ----

seg_a        segment    byte public
        assume cs:seg_a  , ds:seg_a

loc_1:
        db    256 dup (0)

;ЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ
;
;                       Program    Entry Point
;
;ЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ


k        proc    far

start:
        jmp    loc_12

k        endp

;ЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ
;
;                       External Entry Point
;
;ЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ

int_09h_entry    proc    far
        push    ax
        push    bx
        push    ds
        xor    ax,ax            ; Zero register
        mov    ds,ax
        in    al,60h            ; port 60h, keybd scan or sw1
        cmp    al,2
        jb    loc_2            ; Jump if below
        cmp    al,5
        ja    loc_2            ; Jump if above
        mov    bx,data_1e
        mov    al,[bx]
        and    al,0Ch
        cmp    al,0Ch
        je    loc_3            ; Jump if equal
loc_2:
        pushf                ; Push flags
        call    dword ptr cs:data_3
        jmp    short loc_4
        db    90h
loc_3:
        in    al,61h            ; port 61h, 8255 port B, read
        push    ax
        or    al,80h
        out    61h,al            ; port 61h, 8255 B - spkr, etc
        pop    ax
        out    61h,al            ; port 61h, 8255 B - spkr, etc
                        ;  al = 0, disable parity
        mov    al,20h            ; ' '
        out    20h,al            ; port 20h, 8259-1 int command
                        ;  al = 20h, end of interrupt
        sti                ; Enable interrupts
loc_4:
        pop    ds
        pop    bx
        pop    ax
        iret                ; Interrupt return
int_09h_entry    endp

data_3        dd    00000h

;ЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ
;
;                       External Entry Point
;
;ЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ

int_1Ch_entry    proc    far
        push    ax
        push    dx
        mov    al,2
        mov    dx,3DEh
        out    dx,al            ; port 3DEh ??I/O Non-standard
        pop    dx
        pop    ax
        jmp    far ptr $-149h
int_1Ch_entry    endp


;ЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ
;
;                       External Entry Point
;
;ЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ

int_16h_entry    proc    far
        cmp    ax,5AA5h
        jne    loc_5            ; Jump if not equal
        xchg    al,ah
        jmp    short loc_ret_11
loc_5:
        cmp    ah,2
        jne    loc_6            ; Jump if not equal
        jmp    far ptr $-15Ch
loc_6:
        push    cx
        mov    cx,ax
        pushf                ; Push flags
        call    dword ptr cs:[15Dh]
        pushf                ; Push flags
        push    bx
        push    ds
        cmp    al,0
        je    loc_9            ; Jump if equal
        or    ah,ah            ; Zero ?
        jz    loc_9            ; Jump if zero
        cmp    al,2Ah            ; '*'
        je    loc_7            ; Jump if equal
        cmp    al,0FDh
        je    loc_7            ; Jump if equal
        cmp    ah,66h            ; 'f'
        ja    loc_9            ; Jump if above
        cmp    ah,60h            ; '`'
        jb    loc_8            ; Jump if below
loc_7:
        xor    ah,ah            ; Zero register
loc_8:
        cmp    al,0B0h
        jb    loc_9            ; Jump if below
        cmp    al,0DFh
        ja    loc_9            ; Jump if above
        mov    bx,offset data_9
        add    bl,al
        adc    bh,0
        sub    bx,0B0h
        mov    al,cs:[bx]
loc_9:
        pop    ds
        pop    bx
        or    ch,ch            ; Zero ?
        jz    loc_10            ; Jump if zero
        popf                ; Pop flags
        pop    cx
        retf    2            ; Return far
int_16h_entry    endp

loc_10:
        popf                ; Pop flags
        pop    cx

loc_ret_11:
        iret                ; Interrupt return
data_9        db    80h
        db     81h, 82h, 83h, 84h, 85h, 86h
        db     87h, 88h, 89h, 8Ah, 8Bh, 8Ch
        db     8Dh, 8Eh, 8Fh, 90h, 91h, 92h
        db     93h, 94h, 95h, 96h, 97h, 98h
        db     99h, 9Ah, 9Bh, 9Ch, 9Dh, 9Eh
        db     9Fh,0A0h,0A1h,0A2h,0A3h,0A4h
        db    0A5h,0A6h,0A7h,0A8h,0A9h,0AAh
        db    0ABh,0ACh,0ADh,0AEh,0AFh
loc_12:
        mov    al,2
        mov    dx,3DEh
        out    dx,al            ; port 3DEh ??I/O Non-standard
        mov    si,332h
        mov    ax,cs
        mov    ds,ax
        mov    ax,0F000h
        mov    es,ax
        mov    di,data_15e
        mov    cx,1Ch
        nop
        cld                ; Clear direction
        repe    cmpsb            ; Rep zf=1+cx >0 Cmp [si] to es:[di]
        jnz    loc_13            ; Jump if not zero
        mov    si,offset data_13
        mov    ax,cs
        mov    ds,ax
        mov    ax,0F000h
        mov    es,ax
        mov    di,data_16e
        mov    cx,8
        nop
        cld                ; Clear direction
        repe    cmpsb            ; Rep zf=1+cx >0 Cmp [si] to es:[di]
        jz    loc_14            ; Jump if zero
loc_13:
        mov    ax,cs
        mov    ds,ax
        mov    dx,offset data_14    ; ('                        ')
        mov    ah,9
        int    21h            ; DOS Services  ah=function 09h
                        ;  display char string at ds:dx
        jmp    short loc_15
loc_14:
        mov    ax,5AA5h
        int    16h            ; ??INT Non-standard interrupt
        cmp    ax,0A55Ah
        jne    loc_16            ; Jump if not equal
        mov    ax,cs
        mov    ds,ax
        mov    dx,offset data_11    ; ('                        ')
        mov    ah,9
        int    21h            ; DOS Services  ah=function 09h
                        ;  display char string at ds:dx
loc_15:
        mov    ah,4Ch
        int    21h            ; DOS Services  ah=function 4Ch
                        ;  terminate with al=return code
loc_16:
        cli                ; Disable interrupts
        mov    ax,3516h
        int    21h            ; DOS Services  ah=function 35h
                        ;  get intrpt vector al in es:bx
        mov    word ptr cs:[15Dh],bx
        mov    word ptr cs:[15Fh],es
        mov    ax,3509h
        int    21h            ; DOS Services  ah=function 35h
                        ;  get intrpt vector al in es:bx
        mov    word ptr cs:data_3,bx
        mov    word ptr cs:data_3+2,es

locloop_17:
        mov    ax,351Ch
        int    21h            ; DOS Services  ah=function 35h
                        ;  get intrpt vector al in es:bx
        mov    word ptr cs:[14Ah],bx

locloop_18:
        mov    word ptr cs:[14Ch],es
        mov    ax,cs
        mov    ds,ax
        mov    dx,offset int_16h_entry
        mov    ax,2516h
        int    21h            ; DOS Services  ah=function 25h
                        ;  set intrpt vector al to ds:dx
        mov    dx,offset int_09h_entry
        mov    ax,2509h
        int    21h            ; DOS Services  ah=function 25h
                        ;  set intrpt vector al to ds:dx
        mov    dx,offset int_1Ch_entry
        mov    ax,251Ch
        int    21h            ; DOS Services  ah=function 25h
                        ;  set intrpt vector al to ds:dx
        sti                ; Enable interrupts
        mov    ax,cs
        mov    ds,ax
        mov    dx,offset data_10    ; ('KEDR_IS                 ')
        mov    ah,9
        int    21h            ; DOS Services  ah=function 09h
                        ;  display char string at ds:dx
        mov    dx,1DEh
        mov    cl,4
        shr    dx,cl            ; Shift w/zeros fill
        add    dx,1
        mov    ax,3100h
        int    21h            ; DOS Services  ah=function 31h
                        ;  terminate & stay resident
                        ;   al=return code,dx=paragraphs
data_10        db    'KEDR_IS a driver of alternative c'
        db    'oding keyboard "ИСКРА 1030"'
        db    '.', 0Ah, 0Dh
copyright    db    '(C) 1992 '
        db    0A3h, 2Eh, 20h, 8Bh,0A0h,0A1h
        db    0AEh,0E0h,0A0h,0E2h,0AEh,0E0h
        db    0A8h,0EFh, 20h,0A8h,0ADh,0E4h
        db    0AEh,0E0h,0ACh,0A0h,0E2h,0A8h
        db    0AAh,0A8h, 20h, 8Eh, 83h, 8Ch
        db     88h
        db     2Eh, 20h, 0Ah, 0Dh, 24h
data_11        db    'The keyboard driver is already loaded.'
        db    0Ah, 0Dh, '$'
data_12        db    0B8h
        db    0C1h,0BAh,0C0h,0B0h
        db    ' 01.1990 IBM Compatible'
data_13        db    '03/31/91'
data_14        db    'The driver is not suitable for thi'
        db    's type of microcomputer.', 0Ah, 0Dh, '$'
        db     0Dh, 0Ah, 00h, 00h, 00h

seg_a        ends



        end    start

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1199 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.