прерывание int 10h

Тема в разделе "WASM.BEGINNERS", создана пользователем Axotnik, 24 май 2007.

  1. Axotnik

    Axotnik New Member

    Публикаций:
    0
    Регистрация:
    8 май 2007
    Сообщения:
    48
    обьясните
    push ds
    mov ah, 3
    mov bh, 0
    int 10h
    mov dl, 39
    mov ah, 2
    mov bh, 0
    int 10h
    mov ds, cs:null_word
    mov ah, 9
    mov dx, offset aOkrujenie
    int 21h
    pop ds
    jmp exit
    что делает вот етот код.....
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    берем описание прерывания INT 10 у ральфа брауна и фтыкаем:

    Про функцию AH=3:
    Про функцию AH=2:
    Про досовскую функцию печати на экран (INT 21/AH=9):
     
  3. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Нехитрым размышлением получаем, что этот код перемещает курсор на 39-й столбец и выводит на экран строчку по адресу aOkrujenie из сегмента, лежащего в CS:[NULL_WORD]
     
  4. Axotnik

    Axotnik New Member

    Публикаций:
    0
    Регистрация:
    8 май 2007
    Сообщения:
    48
    пасибо
     
  5. Axotnik

    Axotnik New Member

    Публикаций:
    0
    Регистрация:
    8 май 2007
    Сообщения:
    48
    а что означают ети строчки mov ax, seg dseg
    mov ds, ax
    assume ds:dseg
    mov bx, seg seg002
    nop
    mov ax, es
    sub bx, ax
    mov ah, 4Ah
    int 21h
    mov cs:null_word, ds
    mov ah, 9
    mov dx, 0
    int 21h
     
  6. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    --------D-214A-------------------------------
    INT 21 - DOS 2+ - RESIZE MEMORY BLOCK
    AH = 4Ah
    BX = new size in paragraphs
    ES = segment of block to resize
    Return: CF clear if successful
    CF set on error
    AX = error code (07h,08h,09h) (see #01680 at AH=59h/BX=0000h)
    BX = maximum paragraphs available for specified memory block
    Notes: under DOS 2.1-6.0, if there is insufficient memory to expand the block
    as much as requested, the block will be made as large as possible
    DOS 2.1-6.0 coalesces any free blocks immediately following the block
    to be resized
    SeeAlso: AH=48h,AH=49h,AH=83h
     
  7. Vov4ick

    Vov4ick Владимир

    Публикаций:
    0
    Регистрация:
    8 окт 2006
    Сообщения:
    581
    Адрес:
    МО
  8. Axotnik

    Axotnik New Member

    Публикаций:
    0
    Регистрация:
    8 май 2007
    Сообщения:
    48
    пасибо Vov4ick проверь лычные сообщение