В прошлой статье я рассказал вам как скомпилировать программу Hello world На assembler. В этой статье я хотел бы написать о том, как работает эта программа.
Напомню еще раз код нашей программы:
1. CSEG segment
2. org 100h
3. Begin:
4. mov ah,9
5. mov dx,offset Message
6. int 21h
7. int 20h
8. Message db 'Hello, world$'
9. CSEG ends
10.end Begin
К сожалению некоторые фрагменты нашей программы придется пропустить, из-за того что для начала надо будет изучить обширные темы, что бы понять их.
Итак, в строке 3 и 10 вы видите метки, указывающие assembler на начало и на конец кода. Вместо Begin и end Begin можно использовать Start и End Start соответственно.(Стоит обратить внимание, что ассамблеру не важно, заглавными или строчными буквами вы пишите программу)
Строки с 4 по 6 выводят наше сообщение на экран. Здесь надо будет рассказать о регистрах процессора.
Регистр процессора - это специально отведенная память для хранения какого-либо числа.
Например:
A = 12
B = 13
Z = A+B
Получается, что A,B,Z это регистры, которым присваиваются различные значения.
В assembler за присваивание значений отвечает команда mov
В коде есть две операции присваивания:
mov ah,9
mov dx,offset Message
Регистру ah мы присваиваем значение 9, а регистру dx offset Message (а точнее строку Hello, world)
Вызов прерывания int 21h позволяет вывести наше сообщение на экран, int 20h завершает нашу программу.
Напомню еще раз код нашей программы:
1. CSEG segment
2. org 100h
3. Begin:
4. mov ah,9
5. mov dx,offset Message
6. int 21h
7. int 20h
8. Message db 'Hello, world$'
9. CSEG ends
10.end Begin
К сожалению некоторые фрагменты нашей программы придется пропустить, из-за того что для начала надо будет изучить обширные темы, что бы понять их.
Итак, в строке 3 и 10 вы видите метки, указывающие assembler на начало и на конец кода. Вместо Begin и end Begin можно использовать Start и End Start соответственно.(Стоит обратить внимание, что ассамблеру не важно, заглавными или строчными буквами вы пишите программу)
Строки с 4 по 6 выводят наше сообщение на экран. Здесь надо будет рассказать о регистрах процессора.
Регистр процессора - это специально отведенная память для хранения какого-либо числа.
Например:
A = 12
B = 13
Z = A+B
Получается, что A,B,Z это регистры, которым присваиваются различные значения.
В assembler за присваивание значений отвечает команда mov
В коде есть две операции присваивания:
mov ah,9
mov dx,offset Message
Регистру ah мы присваиваем значение 9, а регистру dx offset Message (а точнее строку Hello, world)
Вызов прерывания int 21h позволяет вывести наше сообщение на экран, int 20h завершает нашу программу.
Комментариев нет:
Отправить комментарий