Электростальский форум

Hi-Tech => Компьютеры, периферия, мультимедиа и ПО => Тема начата: santic от 26.12.11, 18:42:32

Название: Помогите решить простенькую задачку на Assmbler =)
Отправлено: 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.
Спасибо за внимание!
Название: Re: Помогите решить простенькую задачку на Assmbler =)
Отправлено: santic от 27.12.11, 10:03:51
Оказалось все просто - 12 строчка, не тот регистр для функции использовал.  :bt: