2007 (Ответы к экзамену)
Описание файла
Файл "2007" внутри архива находится в папке "Ответы к экзамену". Документ из архива "Ответы к экзамену", который расположен в категории "". Всё это находится в предмете "архитектура эвм" из 2 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Онлайн просмотр документа "2007"
Текст из документа "2007"
Вариант 3 2007
1)Выписать фрагмент программы (не более 7 команд) для УМ-1 реализующий A:=A^2+B^2, если A<->0204, B<->0204
(коды операций в УМ-1: 00 - запись в сумматор, 10 - чтение из сумматора, 01 - сложение, 03 - умножение)
2)Что будет напечатано после выполнения следующих команд:
mov ax,-2068
cwd
mov bx,2
idiv bx
outword ax
3)Вычеркнуть неверные команды (x db ?, w dw ?):
xchg si,[si] mov [bx]+2,4 shl dx,5 mov cx,w-x sbb ax,'x' add ds,w
4)Описан стек размером 400 байт. Выписать фрагмент программы, копирующий четные числа (word) из стека в область
памяти, начинающуюся с абсолютного адреса 4bacch. Считать, что сегменты не пересекаются, не изменять ss, sp
5)Определить значения флагов cf, of, sf и значение al (как знакового числа) после выполнения команд:
mov al,-56
add al,170
6)Описать близкую процедуру, для которой эквивалентный заголовок на Паскале имеет вид:
Procedure assgn(var x:int; n:int);
реализующую присваивание x:=n. Процедура должна удовлетворять стандартным соглашениям связи.
Выписать фрагмент программы, производящий присваивание nt:=zero, где nt - переменная типа word,
zero - числовая константа, заданная дириктивой equ
7)Привести макроопределение с заголовком
jgt macro v,l
где v - набор переменных <v1,v2,...,vk> любых типов, l - метка. Макрокоманда должна делать переход на метку
l, если значения всех переменных vi - слов - больше нуля (как знаковых чисел) или если переменных типа word нет.
Выписать макрорасширение для макрокоманды jgt <z,a,y,w> *тут были написаны 3 какихто символа, я не могу понять что я там писал*
где параметры имеют тип: a - byte, y,z - word, w - dword
8)Программа состоит из 2х модулей. В кодовом сегменте головного модуля (Public) описана общедоступная переменная
x (word). Выписать 2й модуль, содержащий процедуру pechx, печатающую x как знаковое и как беззнаковое
9)Есть предложения: extern x:abs и mov ax,x.
Какая служебная программа подставляет x в команду mov ax,x?
10) УМ-3.
Дать определения:
а)адрес ячейки
б)машинное слово
в)код операции
Вариант 2, 2007 г.
1) Выписать фрагмент программы (не более 7 команд) для безадресной (стековой) учебной машины, реализующий присваивание А:=А*А+В*В (А <-> 0200, В <-> 0204, 00 - запись в сумматор, 10 - чтение из сумматора, 01 - сложение, 03 - умножение).
2) Что будет напечатано в результате выполнения команд:
mov ax, 342
mov BL, 2
div
cbw
outint
3) Вычеркнуть неверные команды ( X db ?, W dw ?):
mov ax, x-w
sub AX, DS
mov 5[BX][SI], 5000
xchg bx, [bx]
mov ax, 'X'
mov AX, [BL]
4) В программе под сегмент стека отведено 600 байтов. Выписать фрагмент программы на Асcемблере, который копирует находящиеся сейчас в стеке положительные числа-слова (word) в область памяти, начинающуюся с абсолютного адреса 5EFDCh. Считать, что эта область не пересекается ни со стеком, ни с этим фрагментом. Можно менять значения всех регистров, кроме SS и SP.
5) Указать значения BL (в виде знакового десятичного числа), флагов CF, OF и SF после выполнения команд:
mov BL, 160
sub BL, -56
6) Описать на Ассемблере близкую процедуру, заголовок которой на Паскале имеет вид
procedure AddNum( var X:integer; c:integer );
Процедура реализует присваивание x:=x+c. Параметры передаются через стек. Процедура должна выполнять стандартные соглашения о cвязях. Привести пример вызова этой процедуры для выполнения присваивания cnt:=cnt+one (cnt имеет тип word, one описано через директиву equ).
7) Привести макроопределение с заголовком JzeroL macro v, L (v - список переменных <v1,...,vk>, L - метка). Если значения всех переменных-байтов из списка положительны (как знаковые числа) или таких переменных в списке нет, надо перейти на метку L. Выписать макрорасширение для макрокоманды JzeroL <z,a,y,w>, Con (a - байт, y, z - слова, w - двойное слово).
8) Программа на Ассемблере состоит из двух модулей. В кодовом сегменте головного модуля описана общедоступная (public) переменная y типа byte (со знаком). Выписать второй модуль, который должен содержать процедуру с именем PechAbsY, при вызове которой напечатается абсолютное значение y.
9) В программе на Ассемблере есть предложения: data segment и mov ax, data. Какая служебная программа подставляет конкретное значение на место операнда data в команде mov ax, data ?
10) Дать определения следующих понятий для УМ-3:
а) регистр
б) регистр адреса (счётчик адреса)
в) регистр команды
Вариант 1, 2007 г.
1) Выписать фрагмент программы (не более 7 команд) для УМ-1, реализующий присваивание А:=А*А+В*В (А - 0200, В - 0204, 00 - запись в сумматор, 10 - чтение из сумматора, 01 - сложение, 03 - умножение).
2) Что будет напечатано в результате выполнения команд:
mov ax, -936
cwd
mov bx, 3
idiv bx
outword ax
3) Вычеркнуть неверные команды ( X db ?, W dw ?):
mov ax, x-w
add es, w
mov [bx]+2, 7
xchg bx, [bx]
sbb ax, 'X'
shl dx, 5
4) В программе под сегмент стека отведено 500 байтов. Выписать фрагмент программы на Асемблере, который копирует находящиеся сейчас в стеке чётные числа-слова (word) в область памяти, начинающуюся с абсолютного адреса 7ABCDh. Считать, что эта область не пересекается ни со стеком, ни с этим фрагментом. Можно менять значения всех регистров, кроме SS и SP.
5) Указать значения al (в виде знакового десятичного числа), флагов CF, OF и SF после выполнения команд:
mov al, -56
add al, 170
6) Описать на Ассемблере близкую процедуру, заголовок которой на Паскале имеет вид
procedure Assgn( var X:integer; n:integer );
Процедура реализует присваивание x:=n. Параметры передаются через стек. Процедура должна выполнять стандартные соглашения о связях. Привести пример вызова этой процедуры для выполнения присваивания cnt:=zero (cnt имеет тип word, zero описано через директиву equ).
7) Привести макроопределение с заголовком JGT macro v, L (v - список переменных <v1,...,vk>, L - метка). Если значения всех переменных-слов из списка положительны (как знаковые числа) или таких переменных в списке нет, надо перейти на метку L. Выписать макрорасширение для макрокоманды JGT <z,a,y,w>, Con (a - байт, y, z - слова, w - двойное слово).
8) Программа на Ассемблере состоит из двух модулей. В кодовом сегменте головного модуля описана общедоступная (public) переменная X (word). Выписать второй модуль, который должен содержать процедуру с именем PechX, при вызове которой напечатается значение X как знаковое и как беззнаковое число.
9) В программе на Ассемблере есть предложения: extrn x:abs и mov ax, x. Какая служебная программа подставляет конкретное значение на место операнда X в команде mov ax, x ?
10) Дать определения следующих понятий для УМ-3:
а) адрес ячейки;
б) машинное слово;
в) код операции.