Вариант 4, 11 июня 2006. Ripped by Kissa 1. В стеке записано 125 символов (по 2 в машинном слове). Выписать фрагмент программы на асмах, в котором в регистр ax записывается количество больших латинских букв ('A'..'Z') в тексте. Можно менять любой регистр, кроме sp. 2. Дать определение сегментной организации памяти. Какой недостаток имеет СОП? 3. Написать определения для УМ-3: -машинное слово -адрес ячейки -регистр команд 4. MOV dh,50 SUB dh,156 dh= cf= of= sf= 5. Привести не более 8 команд на асме, записывающих в слово с абсолютным адресом 4В564h остаток от деления содержимого этого слова на 12. 6. Описать близкую процедурус именем bitse, которая получает в качестве параметра значение переменной A и дальний адрес переменной B. (все WORDы) Процедура присваивает параметру B значение 1, если битовое прецтавление параметра A начинается и заканчивается битом 1. Иначе B:=2. Процедура ДОЛЖНА выполнять ССС. Привести пример вызова процедуры. 7. Привести макроопределение с заголовком mac4 MACRO b Если параметр b непустой и является именем переменной-слова, то макрос должен записать её в ax, bx, cx, dx. Иначе макрорасширение обязано быть пустым. 8. Вычеркнуть ошибочные операторы: xchg bx,[bx]; neg byte ptr [si][di]; jmp cx; test ax,6[di]; add dx,[sp]; mov [bx],-1 9. Пусть в начале кодового сегмента стоит директива ASSUME cs:code, ds:d1, es:e1, ss:s1 Пусть переменная d описана в сегменте d1, e - в e1, s - в s1. (все - слова) Для каждой из приведённых команд записать, какой префикс сегмента вставит в машинный код компилятор для этой команды (написать НЕТ, если не вставит): MOV bx,e[bp] MOV bx,s[bx] MOV bx,d[bp][di] MOV bx,d[si] MOV bx,[bp][si] 1, 2, 3, 6, 9 тоже самое, что во втором