2015-09-21 2 views

ответ

5

Команда pseudo DB выделяет память для данных и инициализирует ее заданными значениями. Вы можете указать последовательные значения, разделив их запятыми. Так DB 5 выделит один байт и установите его значение в 5 и DB 4, 3 выделит 2 байта и установите их значение на 4 и 3.

X DUP(V) дублирует раз V X, так 2 DUP(4), как 4, 4.

Объединение тех, мы получаем DB 80, 0, 80 DUP(0), как DB 80, 0, 0, 0, 0, ... , который выделит 82 байт, первый инициализируется до 80, а остальные 0.

Приставка, buffer1 является буфер метка, которая позволяет обратитесь к буфере из других мест вашего кода.

Эта линия свободно равен коду C:

char buffer1[] = { 
    80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0 
}; 

Или, еще проще:

char buffer1[82] = { 80, 0 }; 
+3

Это, вероятно, буфер используется для чтения в строка из консоли в MSDOS, int 21h с регистром AH = 0AH или старая функция c conio.h cgets(). Первый байт - это размер буфера (в данном случае 80 байт), а второй байт - это возвращаемое фактическое количество байтов, вводимых пользователем. Остальные байты - это вход пользователя. – rcgldr