Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаба №2 по ЭВМ .doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
125.95 Кб
Скачать

Федеральное агентство по образованию

Г осударственное образовательное учреждение

высшего профессионального образования

«МАТИ» – Российский государственный

технологический университет им. К.Э.Циолковского

Кафедра «Технология производства приборов и информационных систем управления летательных аппаратов»

Программирование на ассемблере MASM32. Программирование целочисленных выражений.

Методические указания к лабораторной работе

по дисциплине «Архитектура ЭВМ и систем»,

для специальности 230102.65 «Автоматизированные системы обработки информации и управления»

Автор: Пахомов М.М.

Москва 2012

Содержание

Введение

1. Цель работы

2. Теоретические основы

3. Используемое оборудование

4. Порядок выполнения работы

Литература

Введение

Настоящее методическое пособие является указанием для выполнения второй лабораторной работы по дисциплине «Архитектура ЭВМ и систем».

1. Цель работы.

1. Изучить команды процессора для работы с целыми числами.

2.Научиться программировать целочисленные арифметические выражения.

2. Теоретические основы.

2.1. Команды целочисленной арифметики ia-32

Процессоры семейства IA-32 поддерживают арифметические операции над однобайтовыми, двухбайтовыми и четырехбайтовыми целыми числами.

Размер операндов при этом определяется:

  • объемом регистра, хранящего число – если хотя бы один операнд находится в регистре;

  • размером числа, заданным директивой определения данных;

  • специальными описателями, например, BYTE PTR (байт), WORD PTR (слово) и DWORD PTR (двойное слово), если ни один операнд не находится в регистре и размер операнда отличен от размера, определенного директивой определения данных.

При описании команд ассемблера использованы следующие условные обозначения:

r8 – один из 8-ми разрядных регистров: AL, AH, BL, BH, CL, CH, DL, DH;

r16 – один из 16-ти разрядных регистров: AX, BX, CX, DX, SI, DI, SP, BP;

r32 – один из 32-х разрядных регистров: EAX, EBX, ECX, EDX, ESI, EDI, ESP, EBP;

reg – произвольный регистр общего назначения любого размера;

sreg – один из 16-разрядных сегментных регистров: CS, DS, ES, SS, FS, GS;

imm8 – непосредственно заданное 8-ми разрядное значение;

imm16 – непосредственно заданное 16-ти разрядное значение;

imm32 – непосредственно заданное 32-х разрядное значение;

imm – непосредственно заданное значение любого размера;

r/m8 – 8-ми разрядный операнд в регистре или в памяти;

r/m16 – 16-ти разрядный операнд в регистре или в памяти;

r/m32 – 32-ти разрядный операнд в регистре или в памяти;

mem – адрес 8-ми, 16-ти или 32-х разрядного операнда в памяти;

rel8, rel16, rel32 – 8-ми, 16-ти или 32-х разрядная метка.

1. Команда пересылки данных – пересылает число размером 1, 2 или 4 байта из источника в приемник:

mov Приемник, Источник

Допустимые варианты:

mov reg, reg

mov mem, reg

mov reg, mem

mov mem, imm

mov reg, imm

mov r/m16, sreg

mov sreg, r/m16

Примеры:

а) mov AX, BX

б) mov ESI, 1000

в) mov 0[DI], AL

г) mov AX, code

mov DS, AX

2. Команда перемещения и дополнения нулямипри перемещении значение источника помещается в младшие разряды, а в старшие заносятся нули:

movzx Приемник, Источник

Допустимые варианты:

movzx r16/r32, r/m8

movzx r32, r/m16

Примеры:

а) movzx EAX, BX

б) movzx SI, AH

3. Команда перемещения и дополнения знаковым разрядомкоманда выполняется аналогично, но в старшие разряды заносятся знаковые биты:

movsx Приемник, Источник