понедельник, 24 декабря 2012 г.

Разбор Hello world

В прошлой статье я рассказал вам как скомпилировать программу 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 завершает нашу программу.


Комментариев нет:

Отправить комментарий