Другие языки программирования и технологии

Требуется объяснить каждую строку программы на Assembler

Ассемблер не изучал, преподаватель на первой паре попросил объяснить данный код

MODEL TINY
STACK 256
DATASEG
Hellostr DB 'Hello First Step Site '
CODESEG
start:
mov ax,@data
mov ds,ax
mov bx,1
mov cx,21
mov dx,offset Hellostr
mov ah,40h
int 21h
mov ah, 04Ch
int 21h
end start

Храни господь того кто мне поможет
А я продолжу:

mov bx,1; запись 1 в регистр бх
mov cx,21; запись 21 в регистр сх
mov dx,offset Hellostr; запись смещения адреса байтового массива хеллостр в регистр дх
mov ah,40h ;запись 40 в старший байт аккумулятора
int 21h ;вызов прерывания 21
mov ah, 04Ch ; запись 4ц в старший байт аккумулятора
int 21h;вызов прерывания 21
end start ;ничего в общем-то не значит, просто конец ассемблерирования

Сильно помогло?
Ты лучше учитывай такой тонкий момент, что без знания архитектуры все эти объяснения каждой строчки имеют примерно такой вот эффект, который ты сейчас ощутил: все слова вроде понятные, а в общем - непонятно ничего. Поэтому садись за учебник и штудитруй архитектуру, в данном случае это 8080. И заодно выясни, что в ДОСе делает 21-ое прерывание, когда и почему.
Marat Serikov
Marat Serikov
77 253
Лучший ответ
Виктор Скыдыщь архитектуру я постепенно изучаю, просто препод сразу задал вопрос, надо срочно ответить, а дальше уже сам по мере изучения пойму и разберу, спасибо большое
MODEL TINY
Служебная информация для "компилятора", которая говорит какие настройки использовать - в данном случае 16-разрядныое приложение DOS. В этой модели все данные и код располагаются в одном физическом сегменте. Размер программного файла в этом случае не превышает 64 Кбайт
STACK 256
Определение сегмента стека.
DATASEG
Начало или продолжение сегмента инициализированных данных.
Hellostr DB 'Hello First Step Site '
Описание метки Hellostr и "запись" данных-байт
CODESEG
Начало или продолжение сегмента кода
start:
Метка
mov ax,@data
Запись в регистр ax физического адреса сегмента данных типа near
mov ds,ax
Запись в регистр ds значения регистра ax
.......дальше надоело
mov bx,1

mov cx,21

mov dx,offset Hellostr

mov ah,40h

int 21h

mov ah, 04Ch

int 21h

end start
Ерик Абуханов
Ерик Абуханов
91 373
Hamidillo Madazimov :) «Храни господь того кто мне поможет», так все ему надоели, как тебе описывать этот код

Похожие вопросы