Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите написать программу на ассемблере, завтра экзамен а я в нём совсем не шарю.

Артур Знаток (460), закрыт 11 лет назад
Помогите написать программу на ассемблере, завтра экзамен а я в нём совсем не шарю.
Задача: "Написать программу, определяющую количество всех байтов памяти сегмента кода с ненулевыми значениями (реальный режим работы Интел 80x86)."
Лучший ответ
Миоко Таканава Гений (51590) 11 лет назад
Не понятно то ли просматривать все 64К сегмента кода, то ли только те байты, которые являются исполняемым кодом самой программы.
Программа для второго варианта (x в типе процессора заменён на троечку. Процессор Intel 80386 в реальном режиме работы) :

.model tiny
.386

.code
    org 100h
N84970030:
    lea si, N84970030
    mov cx, ProgLen
    xor dx, dx
    mov ah, dl
    cld
@@:
    lodsb
    test al, al
    setne al
    add dx, ax
    loop @B

    mov ax, dx
    mov bx, 10
    call Write

    mov ax, 4C00h
    int 21h
   
Write proc
    cwd
    div bx
    test ax, ax
    push dx
    jz @F
    call Write
@@:
    pop ax
    or al, 30h
    int 29h
    ret
Write endp

ProgLen equ $ - N84970030
    end N84970030
Остальные ответы
The Cat Искусственный Интеллект (116116) 11 лет назад
Сложно конкретно ответить на ваш вопрос, потому что ассемблер существует только в учебных заведениях, в реальной жизни он никому не нужен и на компах нормальных людей его нет. Тем более реального режима x86.
Похожие вопросы