Массивы и строки в ассемблере
массив - структурированный тип данных, состоящий из некоторого числа элементов одного типа. Специальных средств описания массивов в программах ассемблера нет. array1 rb 10; массив из 10 байт array2 rw 10; массив из 10 слов (16-битных элементов) array3 rd 10; массив из 10 32-битных элементов
Для обращения к элементам массива используется запись: mov [array1], 1; занести в 0-й элемент массива 1 mov [array2 + 2], 2; занести в 1-й элемент массива 2 mov [array3 + ecx * 4], 7; занести в ecx-й элемент массива 7
Строки представляют собой обычный массив. Есть несколько распространенных способов хранения длины строки:
string db 12, ‘hello world!’
string db ‘hello world!’, 0
string db ‘hello world!$’ Операции со строками:
Билет 10 1) Файлы в паскале Для работы с файлами в Паскале используются файловые переменные. Файловые переменные бывают трех типов: var f1: file; { нетипизированные } var f2: file of integer; { содержащие набор данных заданного типа, в данном случае integer } var f3: text; { содержащие набор строк } Нетипизированные файловые переменные могут содержать данные смешанных типов и в данном занятии не рассматриваются. Работа с файлом любого типа разбивается на следующие этапы: § Связывание файловой переменной с конкретным файлом на диске. Выполняется процедурой Assign. Например, Assign(f3, ‘a:\data.txt’). § Открытие файла. Для открытия файла в режиме чтения используется процедура Reset(f), записи – Rewrite(f), добавления информации в конец – Append(f), последнее только для текстовых файлов. § Чтение и запись в файл. Осуществляется командами Read(f, var1, var2, …) и Write(f, var1, var2, …) для типизированных файлов и ReadLn(f, str1, str2, …) / WriteLn(f, str1, str2, …) для текстовых. § Завершение работы с файлом. Close(f). При чтении данных из файла неизвестного размера полезно пользоваться функцией Eof(f), которая возвращает True в случае, если достигнут конец файла. Типовой констркуцией для чтения файла является while not eof(f) do begin read(f, x); … end;
|