Электростальский форум
Hi-Tech => Компьютеры, периферия, мультимедиа и ПО => Тема начата: santic от 26.12.11, 18:42:32
-
Приветствую, народ! Есть задачка простая, которую надо написать на ассемблере (masm) для ОС MS-DOS: освободит лишнюю память, потребует у MS-DOS блок памяти объемом 80 байт и заполнит ее символом "$"
Что-то накорябал:
text segment
assume CS:text, DS:data
begin:
mov AX, data
mov DS, AX
mov AX, zzz
mov DX, ES
sub AX, DX
mov BX, AX
mov AX, 4Ah
int 21h
mov AH, 48h
mov BX, 80
int 21h
mov AL, '$'
mov CX, 79
mov BX, 0
l:
mov byte ptr ES:[BX], AL
inc BX
loop l
mov byte ptr ES:[BX], '$'
push ES
pop DS
mov DX, 0
mov AH, 09h
int 21h
mov AH, 01h
int 21h
mov AX, 4C00h
int 21h
text ends
data segment
data ends
zzz segment
zzz ends
end begin
Компиляция без ошибок происходит, запуск программы - вылет сеанса MS-DOS.
Спасибо за внимание!
-
Оказалось все просто - 12 строчка, не тот регистр для функции использовал. :bt: