Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm: Общие вопросы > Помогите пожалуйста с программой


Автор: Vinchenso 18.2.2010, 05:21
Помогите пожалуйста с программой! Нужно написать программу на языке ассемблера 8086, определяющую размер первого встретившегося участка памяти с нулевыми значениями байтов,  идущими подряд, в сегменте кода (реальный режим работы процессора). Пожалуйста! smile

Автор: iff 20.2.2010, 18:30
Код

;Фрагмент программы на языке ассемблера для компилятора TASM 5
;(С) Корпорация Майкрософт, 1985-2001.

;Используется bx, ax
;При переходе к выполнению кода ax должен содержать 0, cs:bx - смещение ячейки, с которой начнётся сканирование
;После выполнения кода ax содержит кол-во ячеек с нулевым значением

;       push    bx                      ;Сохранить bx
;       push    ax                      ;Сохранить ax
;       lea     bx, data                ;Загрузить адрес ячейки, с которой начнётся сканирование
;       xor     ax, ax                  ;Обнулить ax
z10:    cmp     byte ptr cs:[bx], 0
        je      z20
        inc     bx
        jmp     z10
z20:    cmp     byte ptr cs:[bx], 0
        jne     z30
        inc     ax
        inc     bx
        jmp     z20
z30:

;               ...

;       pop     ax                      ;Восстановить ax
;       pop     bx                      ;Восстановить bx


Автор: Vinchenso 23.2.2010, 12:25
iff, спасибо большое!!

Автор: iff 23.2.2010, 22:00
пожалуйсто. там где нужно убери знаки коментария

Автор: Vinchenso 24.2.2010, 00:40
iff, прости поджалуйста, но я совсем забыл написать, что программа нужна для линукса, а не для доса. Как я мог забыть об этом?

Автор: x128 24.2.2010, 09:52
Vinchenso, в примере нет привязок к системе

Автор: Vinchenso 24.2.2010, 14:40
x128, то есть мне эта программа подойдет?

Автор: iff 24.2.2010, 15:50
Видешь программа не использует ни прерываний DOS, ни API. Ты даже можешь взять чип BIOS и на него записать ее - и она должна зароботать smile. Другое дело для какого компилятора ты ее пишешь? Синтаксисы разных компиляторов отличаются.

Автор: Vinchenso 24.2.2010, 16:43
iffx128, спасибо вам!

Автор: iff 24.2.2010, 20:35
а x128 за что?  smile 

Автор: Vinchenso 25.2.2010, 02:28
Ну он подсказал

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)