Вариант 1 (199? год) 1. Указать значение регистра AL после выполнения следующих команд : MOV AL, 131 ADD AL, 50 JL M1 MOV AL, 1 JMP M2 M1: MOV AL, 0 M2: 2. Имеется описание массива Y [0..55] из чисел без знака : Y DB 56 DUP(?) и пусть в регистре BX находится некоторое число k (0<= k <= 45). выпишите команды (не более 4), реализующие переход по метке M при выполнении условия Y[k + 10] < k + Y[10] 3. Вычеркните неправильные адресные выражения : X[0], SI + 2, X[DI] + 4, [BX] + X + [BP], X[CX], [X + 2] + [BP + SI], [BX], где X имя переменной X DW ? 4. Выпишите команды (без строковых команд и индексов повторения), выполняющие то же действие, что и REP MOVSB. 5. В стеке записано не менее 10 слов, причем десятое (сверху) из них - это адрес (смещение) некоторого байта из сегмента памяти, на начало которого указывает регистр ES. Выпишите команды, которые записывают 0 в этот байт и при этом сохраняют значения всех регистров и не используют переменные. 6. Выписать таблицу общих имен (ТОБЩ) и таблицу перемещаемых адресов (ТПА), которые построит ассемблер при трансляции следующего модуля : PUBLIC X, Y Q SEGMENT X DW 2 DUP(Q) Y DW Z, Q Z DB ? Q ENDS END 7. Укажите ошибку, которую зафиксирует ассемблер при трансляции : C SEGMENT ASSUME CS:C X DW 1 BE : MOV AX, Y ADD AX, X Y DW 2 C ENDS как ее можно исправить ? 8. В арифметических командах ЭВМ (УМ-С) не указывается ни одного адреса. Как в этих командах определяются операнды. Вариант 2 (199? год) 1. Сравните одноадресную (УМ - 1) и стековую (УМ - С) ЭВМ по следующим критериям : удобство программирования, быстродействие и размер памяти, занимаемой эквивалентными программами. 2. Выпишите значение регистра AL (HEX), и флаги CF, OF, ZF и SF после выполнения следующих команд : MOV AL, 20 ADD AL, 120 3. Имеется описание массива X[0..99] : X DB 100 DUP(?) и пусть в регистре DI находится некоторое число i (0<=i<=99). Выпишите команды (не более 4), реализующие присваивание x[24] := x[i] + i 4. При следующих значениях регистров DS = 2222h, ES = 3333h, SS = 4444h, CS = 5555h, SI = 0F00Fh определите абсолютный адрес первого операнда команды SUB [SI + 3030h], AH 5. Вычеркните неправильные адресные выражения : 4[BH], [DI + Y + 2], 6[Y], Y[DI][SI], [SI] + Y[BX], [BP] + [DI], BX[SI] 6. Выпишите команды (с командой CMPSB, но без префиксов повторения), выполняющие то же действие, что и REPE CMPSB 7. В стеке записано не менее 2х слов. Выпишите команды, которые меняют местами два верхних слова стека и при этом сохраняют значения всех регистров и не используют переменные. 8. Предположим, вашей программе приходится несколько раз проверять, принадлежат ли значения символьных переменных каким либо диапазонам символов (например : X - цифра?, Y - малая лат. буква?). Как вы Опишете это повторяющееся действие - как макрос или как процедуру? 9. Выпишите макрорасширениедля макрокоманды M1 2 при следующем описании макроса M1 : M1 MACRO K JMP W&K IF K + 1 EQ 3 X DB '&K + 1' ELSE W2 MOV BX, K&K ENDIF Вариант 3 (199? год) 1. Указать значение регистра AL после выполнения следующих команд: MOV AL, 131 SUB AL, 50 JGE M1 MOV AL, 10 JMP M2 M1: MOV AL, 20 M2: 2. Имеется описание массива X[-10..10]: X DW 21 dup (?) и пусть в регистре DI находится некоторое число i (0<=i<=10). Выпишите команды (не более четырех), реализующие присваивание x[i]:=x[0]+i. Можно изменять значение любых регистров. 3. Вычеркните неправильные адресные выражения 4[BH] [DI+Y+2] 6[Y] Y[DI][SI] [SI]+Y[BX] [BP]+[DI] BX[SI] где Y - имя переменной Y DW ... 4. Выписать таблицу общих имен (ТОБЩ) и таблицу вхождений внешних имен (ТВНЕШ), которые построит ассемблер при трансляции следующего модуля: EXTRN P: FAR PUBLIC A,C S SEGMENT A DB 100H DUP(?) B DW P C DW B, SEG P S ENDS END 5. В стеке записано не менее двух слов. Выпишите команды, которые удаляют из стека второе (сверху) слово, и при этом сохраняют значения всех регистров (кроме SP) и не используют переменные. 6. Укажите ошибку, которую зафиксирует ассемблер при трансляции: C SEGMENT ASSUME CS:C X DW 1 BEG: MOV AX, Y ADD AX, X Y DW 2 C ENDS Как ее можно исправить? 7. Выпишите команды (без строковых команд и без префиксов повторения), выполняющие то же действие, что и пара команд REP MOVSB, при DF = 0. 8. В арифметических командах стековой ЭВМ (УМ - С) не указывается ни одного адреса. Как в этих командах командах определяются операнды. Вариант 4 (199? год) 1. Пусть в ЭВМ имеется кэш-память, размер которой - 16 блоков по 16 машинных слов в каждом и в которой используется алгоритм прямого размещения блоков (содержимое ячеек с шестнадцатеричными адресами xyzw0, xyzw1, ... xyzwF размещается в блоке с номером w). Пусть на чтение одного слова из кэш-памяти в центральный процессор тратится 1 единица времени, а на чтение одного блока из оперативной памяти в кэш-память - 10 единиц. Считая, что в начале кэш-память была свободной, определить, сколько времени потребуется на чтение данных, когда в программе последовательно нужны данные из ячеек со следующими 16-ричными адресами: 5F045, B082A, 67049, B0870, B0821, 5F046, B0820, 5F04E 2. Считая, что перед выполнением команды PUSH 8[BX+DI] регистры имели следующие значения: DS=1234h, SS=0f900h, SP=7052h, BX=9999h, DI=6666h Указать в 16-ричном виде абсолютные адреса ячеек "откуда" и "куда" переписывает данная команда слово. 3. Из указанных команд вычеркнуть те, что записаны с ошибкой PUSH CS MOV ES, DS ADD [SI], 5 LEA AX,[BX] XCHG [SI],[SI+3] MUL 10 4. Ответить на следующе 2 вопроса: на каком проходе и как именно ассемблер выявляет ошибку "повторное описание имени" (одно и то же имя описано дважды) ? 5. Выписать таблицу общих имен (ТОБЩ) и таблицу перемещаемых адресов (ТПА), которые построит ассемблер при трансляции следующего модуля : PUBLIC X, Y Q SEGMENT X DW 2 DUP(Q) Y DW Z, Q Z DB ? Q ENDS END 6. Выписать команды (с командой CMPSB, но без префиксов повторения), выполняющие то же действие, что и пара команд REPE CMPSB. Можно использовать регистр AL в качестве вспомогательного. 7. При следующих значения регистров DS = 2222h ES = 3333h CS = 5555h SI = 0F00Fh Определить абсолютный (20 - разрядный) адрес 1-го операнда команды SUB [SI+3030h], AH Указать формулу вычисления этого адреса.