Last saved by: taras

Задания на лабораторные работы – 2007 г.

Общие положения.
Задания связаны с проектированием ассемблеров. Исходными данными являются потоки ассемблерных команд, записанные в  соответствии с правилами языка Ассемблера.
	Требуется разработать:
•	систему признаков для фиксации результатов обработки операндов, таблицу машинных операций;
•	алгоритмы анализа и синтеза машинных операций. 
Результат обработки должен максимально совпадать с теми данными, которые формирует стандартный ассемблер (tasm, masm или ассемблер для ОС Linux). В текстах заданий для указания операндов используются следующие обозначения:
r – операнд находится в регистре общего назначения (РОН);
	m – операнд находится в основной памяти;
	imm – непосредственный операнд.

1.	Аржановский Роман Сергеевич 
Исходные данные содержат команды вида:

МНЕМА	r,r
МНЕМА	r,imm
МНЕМУ	$+смещение
МНЕМУ	$-смещение
…

Здесь МНЕМА = [sbb, add, cmp],  МНЕМУ = [jl, jg, je].
Требуется сформировать листинг для этого потока команд для случая 16-разрядных операндов.

2.	Асмандияров Рустам Раилевич
Исходные данные содержат команды вида:

МНЕМА	r,r
МНЕМА	r,m
…

Здесь МНЕМА = [cmp, mov]. Здесь операнд в памяти (m)  может быть задан одним из следующих способов: [SI], [DI] , [BX+DI] , [BX][DI] , [BX][SI] , [BX+DI+DISP].
Требуется сформировать листинг для этого потока команд для случая 16-разрядных операндов.

3.	Валиахметов Артур Газинурович 
Исходные данные содержат команды вида:

xchg		r,r
xchg		r,m
neg		r
neg		m
and		r,r
and		r,m
…

Здесь операнд в памяти (m)  может быть задан одним из следующих способов: [EBX], [ESI], [EBX+EDI].
Требуется сформировать листинг для этого потока команд для случая 32-разрядных операндов.

4.	Михальский Владислав Олегович 
Исходные данные содержат команды вида:

push	r
push	seg_r
push	m
pop	r
pop	seg_r
pop	m
…

Здесь операнд в памяти (m)  может быть задан одним из следующих способов: [EBX], [EBP], [EBX+DISP], [EBP+DISP].
Требуется сформировать листинг для этого потока команд для случая 32-разрядных операндов. ОС – Linux.

5.	Кочурова Мария Вячеславовна 
Исходные данные содержат команды вида:

МНЕМА	r,r
МНЕМА	r,m

Здесь МНЕМА = [mov, add].
Операнд в памяти (m)  может быть задан одним из следующих способов: [BX], [SI], [DI], [BX+SI], [BX+DI], [DISP].
Требуется сформировать листинг для этого потока команд для случая 16-разрядных операндов.

6.	Мельников Константин Николаевич 
Исходные данные содержат команды вида:

МНЕМА	r,r
МНЕМА	r,mem

Здесь МНЕМА = [xchg, and, xor]. Операнд в памяти (mem)  может быть задан одним из следующих способов: [EBX], [EBX+ESI], [EBX+DISP], [EBX+ESI+DISP].
Требуется сформировать листинг для этого потока команд для случая 32-разрядных операндов. ОС – Linux.

7.	Лобжа Илья Андреевич 
Исходные данные содержат команды вида:

inc		r
dec		r
МНЕМА	r,r
МНЕМА	r,m
…
ret

Здесь МНЕМА = [mov, sbb, cmp]. Операнд в памяти (m)  может быть задан одним из следующих способов: [SI+DISP], [DI+DISP], [BX+SI], [BX+DI], [DISP].
Требуется сформировать листинг для этого потока команд для случая 16-разрядных операндов.

8.	Минниахметов Ильдар Фаритович 
Исходные данные содержат команды вида:

lea		r,constanta
МНЕМА	r,r
МНЕМА	r,m

Здесь МНЕМА = [add, and, xor]. Операнд в памяти (m)  может быть задан одним из следующих способов: [BX], [BP], [BX+DISP], [BP+DISP].
Требуется сформировать листинг для этого потока команд для 16-разрядных операндов.

9.	Мустафина Дарья Олеговна 
Исходные данные содержат команды вида:

МНЕМА	r,r
МНЕМА	r,imm

Здесь МНЕМА = [add, sub, cmp]. Операнд в памяти (m)  может быть задан одним из следующих способов: [BX], [SI], [BX+DISP], [SI+DISP] , [BX+SI+DISP].
Требуется сформировать листинг для этого потока команд для 16-разрядных операндов.

10.	Шубин
Исходные данные содержат команды вида:

dec		r
dec		mem
МНЕМА	r,r
МНЕМА	r,mem
…

Здесь МНЕМА = [xchg]. Операнд в памяти (m)  может быть задан одним из следующих способов: [EBX], [ESI], [EBX+DISP], [ESI+DISP] , [EBX+SI+DISP].
Требуется сформировать листинг для этого потока команд для 32-разрядных операндов.
 ОС – Linux.

11.	Новокшонов Игорь Владимирович
Исходные данные содержат команды вида:

МНЕМА	r,r
МНЕМА	r,imm
…

Здесь МНЕМА = [mov, cmp, add]. Операнд в памяти (m)  может быть задан одним из следующих способов: [BX], [DI], [BX+DISP], [DI+DISP] , [BX+DI+DISP].
Требуется сформировать листинг для этого потока команд для 16-разрядных операндов.

12.	Секацкий Антон Владиславович 
Исходные данные содержат команды вида:

МНЕМА	r,r
МНЕМА	r,mem
…

Здесь МНЕМА = [mov, and, or]. Операнд в памяти (m)  может быть задан одним из следующих способов: [BX], [DI], [BX+DISP], [DI+DISP] , [BX+DI+DISP] , [SI], [SI+DISP] , [BX+SI+DISP].
Требуется сформировать листинг для этого потока команд для 16-разрядных операндов.

13.	Фаррахов Тимур Рафисович 
Исходные данные содержат команды вида:

МНЕМА	r,r
МНЕМА	r,imm
…

Здесь МНЕМА = [div, idiv].
Требуется сформировать листинг для этого потока команд для случая 16-разрядных операндов.

14.	Хасанова Венера Рамазановна 
Исходные данные содержат команды вида:

МНЕМА	r
МНЕМА	imm
МНЕМА	mem
…

Здесь МНЕМА = [inc, dec, neg]. Здесь операнд в памяти (mem)  может быть задан одним из следующих способов: [BX], [BX+SI], [BX+DI], [BX+DISP].
Требуется сформировать листинг для этого потока команд для случая 16-разрядных операндов.

15.	Пономарев Валерий Александрович 
Исходные данные содержат команды вида:

МНЕМА	r
МНЕМА	mem
…

Здесь МНЕМА = [push, pop]. Здесь операнд в памяти (mem)  может быть задан одним из следующих способов: [BX], [BX][SI], [BX][DI].
Требуется сформировать листинг для этого потока команд для случая 16-разрядных операндов.

16.	Рубцов Михаил Владимирович
Исходные данные содержат команды вида:

МНЕМА	r,mem
…

Здесь МНЕМА = [lea, lds, les]. Здесь операнд в памяти (mem)  может быть задан одним из следующих способов: [BX], [BX+SI], [BX+DISP], [BX+SI+DISP].
Требуется сформировать листинг для этого потока команд для случая 16-разрядных операндов.

17.	Созонов Сергей Сергеевич
Исходные данные содержат команды вида:

Call 	mem
ret	constanta
ret		
…

Здесь операнд в памяти (mem)  может быть задан одним из следующих способов: [BX+DI], [BX+SI], [BX+DISP], [BX+SI+DISP], [BX+DI+DISP].
Требуется сформировать листинг для этого потока команд для случая 16-разрядных операндов.

18.	Рахимов Дамир Фанилевич 
Исходные данные содержат команды вида:

МНЕМА	r,r
jmp		$+/-const   
je		$+/-const
…

Здесь МНЕМА = [add, cmp].  Требуется сформировать листинг для этого потока команд для случая 16-разрядных операндов.

19.	Солунин Алексей Игоревич
Исходные данные содержат команды вида:

МНЕМА	st(0),st(i)
МНЕМА	st(0),mem
…

Здесь МНЕМА = [fadd, fsub, fld]. Здесь операнд в памяти (mem)  может быть задан одним из следующих способов: [BX+DI], [BX+SI], [BX], [SI], [DI].
Требуется сформировать листинг для этого потока команд для случая 16-разрядных операндов.

20.	Чепкасова Вера Викторовна
Исходные данные содержат команды вида:

МНЕМА	st(0),st(i)
МНЕМА	st(0),mem
…
ret

Здесь МНЕМА = [fmul, fdiv, fld]. Здесь операнд в памяти (mem)  может быть задан одним из следующих способов: [BX], [BX][SI], [BX+DISP], [BX][DI].
Требуется сформировать листинг для этого потока команд для случая 16-разрядных операндов.

21.	
Исходные данные содержат команды вида:

jmp		$+/-const   
МНЕМА	r,imm
je		$+/-const
…

Здесь МНЕМА = [sbb, cmp].  Требуется сформировать листинг для этого потока команд для случая 16-разрядных операндов.

22.	
Исходные данные содержат команды вида:

МНЕМУ	$+смещение
МНЕМУ	$-смещение
…

Здесь МНЕМУ = [jl, jg, je].
Требуется сформировать листинг для этого потока команд для случая 16-разрядных операндов.

23.	
Исходные данные содержат команды вида:

МНЕМА	r,r
МНЕМА	r,imm
…

Здесь МНЕМА = [mov, cmp].
Требуется сформировать листинг для этого потока команд для случая 16-разрядных операндов.

24.	
Исходные данные содержат команды вида:

МНЕМА	r,r
МНЕМА	r,m
…

Здесь МНЕМА = [sub, add]. Здесь операнд в памяти (m)  может быть задан одним из следующих способов: [SI], [DI] , [BX+DI] , [BX+SI] , [BX+SI+DI].
Требуется сформировать листинг для этого потока команд для случая 16-разрядных операндов.