Автор работы: Пользователь скрыл имя, 20 Марта 2012 в 19:10, шпаргалка
Работа содержит 50 ответов на вопросы по дисциплине "ЭВМ"
1. Команды RET и CALL.
2. Команды ввода и вывода.
3. Команды цикла.
4. Логические команды.
5. Команды сравнения и перехода.
6. Метки.
7. Команды POP и PUSH.
8. Оборудование для сетей и способы их подключения.
9. Арифметические команды.
10. Вывод символов.
11. Вывод чисел.
12. Директивы.
13. Команды XOR, OR.
14. Основные архитектуры сетей ЭВМ.
15. Команда NEG, её свойства аналог. команды.
16. Оценка производительности ЭВМ.
17. Команды JMP и JXX.
18. Подпрограммы.
19. Команды INT 21h.
20. Протокол передачи FTP.
21. Команды INT 16h.
22. Протоколы передачи SMTP.
23. Команды INT 10h.
24. Протокол передачи TCP/IP.
25. Команды INC и ADD, ADC.
26. Работа с графикой.
27. Команды DEC и SUB, SBB.
28. Работа с массивом.
29. Команды AND, NOT.
30. Работа со стеком.
31. Команды LEA, XLAT.
32. Разработка и отладка программ на языке Ассемблера.
33. Команды TEST и CMP.
34. Регистры.
35. Команды PUSH и POP.
36. Регистры назначения.
37. Команды MUL, IMUL.
38. Сегментные регистры.
39. Команды сдвига.
40. Сегменты.
41. Команды MOV, PTR.
42. Сети ЭВМ и протоколы передачи данных.
43. Прерывания и их использование.
44. Флаги.
45. Типы данных.
46. Условные и безусловные переходы.
47. Команда DIV, IDIV.
48. Сравнения с флагами.
49. Команда ADD, XCHG.
50. Условные переходы с использованием флагов.
Алгоритм работы: команда вычитает 1 из операнда.
(SuBtract with Borrow) Вычитание с заемом
Схема команды: | sbb операнд_1,операнд_2 |
Назначение: целочисленное вычитание с учетом результата предыдущего вычитания командами sbb и sub (по состоянию флага переноса cf).
Алгоритм работы: выполнить сложение операнд_2=операнд_2+(cf); выполнить вычитание операнд_1=операнд_1-операнд_2.
28. Работа с массивом.
29. Команды AND, NOT.
(logical AND) Логическое И
Схема команды: | and приемник,источник |
Назначение: операция логического умножения для операндов приемник и источник размерностью байт, слово или двойное слово.
Алгоритм работы: выполнить операцию логического умножения над операндами источник и приемник: каждый бит результата равен 1, если соответствующие биты операндов равны 1, в остальных случаях бит результата равен 0;записать результат операции в приемник; установить флаги.
(NOT operand) Инвертирование операнда
Схема команды: | not источник |
Назначение: инвертирование всех битов операнда источник.
Алгоритм работы: инвертировать все биты операнда источника: из 1 в 0, из 0 в 1.
30. Работа со стеком.
Работа со стеком заключается в простом правиле - первый пришёл, последний ушёл :) Для работы со стеком нам понадобятся всего 2 команды: push и pop. Синтаксис у них такой:
PUSH приемник
POP приемник
PUSH - записывает в стек, POP - извлекает из стека. Соответственно:
push AX - ПОМЕЩАЕТ В СТЕК значение регистра AX
pop AX - ИЗВЛЕКАЕТ ИЗ СТЕКА значение регистра AX
31. Команды LEA, XLAT.
(Load Effective Address) Загрузка эффективного адреса
Схема команды: | lea приемник,источник |
Назначение: получение эффективного адреса (смещения) источника.
Алгоритм работы: алгоритм работы команды зависит от действующего режима адресации (use16 или use32): если use16, то в регистр приемник загружается 16-битное значение смещения операнда источник; если use32, то в регистр приемник загружается 32-битное значение смещения операнда источник.
(transLATe Byte from table) Преобразование байта
Схема команды: | xlat адрес_таблицы_байтов xlatb |
Назначение: подмена байта в регистре al байтом из последовательности (таблицы) байтов в памяти.
Алгоритм работы: вычислить адрес, равный ds:bx+(al); выполнить замену байта в регистре al байтом из памяти по вычисленному адресу.
Несмотря на наличие операнда адрес_таблицы_байтов в команде xlat, адрес последовательности байтов, из которой будет осуществляться выборка байта для подмены в регистре al, должен быть предварительно загружен в пару ds:bx(ebx). Команда xlat допускает замену сегмента.
32. Разработка и отладка программ на языке Ассемблера.
1. Постановка задачи. Включает в себя содержательное описание задачи и разработку алгоритма.
2. Разработка текста программы.
3. Ввод текста в компьютер. Текст программы в мнемокодах вводится в ЭВМ при помощи любого текстового редактора. Так же при этом создается текстовый файл с расширением .ASM .
4. Компиляция или ассемблирование. Осуществляется преобразование текстового файла с расширением .ASM в объектный файл, содержащий программу в машинном коде с расширением .OBJ . Так же на этом этапе может быть создан листинг программы. Файл с расширением .LST, в котором содержится основная информация о программе, а так же файл перекрёстных ссылок с расширением .CRF. На этом этапе происходит проверка текста программ на наличие ошибок. Ассемблирование осуществляется при помощи программы-транслятора TASM.EXE (ASM.EXE – в ассемблере, MASM.EXE – в макроассемблере). TASM [опции] *.ASM [,,] - команда для выполнения трансляции. Если в команде указана одна запятая, то файл листинга формируется. В TASM имеются две опции: /ZI и /N. Они вызываются: TASM.
5. Компоновка. На этом этапе создается перемещаемая программа, способная загружаться в любую область памяти. Сохраняется в файле с расширением.ЕХЕ или.СОМ. Для этого используется TLINK.EXE (для макроассемблера – LINK.EXE). Имеются опции: /Т и /X.
6. Выполнение и отладка (DEBUG).
7. Занесение машинного кода программы в ПЗУ (может отсутствовать).
Теперь перейдём непосредственно к написанию программы на языке Ассемблера.
33. Команды TEST и CMP.
(TEST operand) Логическое И
Схема команды: | test приемник,источник |
Назначение: операция логического сравнения операндов приемник и источник размерностью байт, слово или двойное слово.
Алгоритм работы: выполнить операцию логического умножения над операндами приемник и источник: бит результата равен 1, если соответствующие биты операндов равны 1, в остальных случаях бит результата равен 0; установить флаги.
(CoMPare operands) Сравнение операндов
Схема команды: | cmp операнд1,операнд2 |
Назначение: сравнение двух операндов.
Алгоритм работы: выполнить вычитание (операнд1-операнд2); в зависимости от результата установить флаги, операнд1 и операнд2 не изменять (то есть результат не запоминать).
34. Регистры.
Регистр - это определенный участок памяти внутри самого процессора, от 8-ми до 32-х бит длиной, который используется для промежуточного хранения информации, обрабатываемой процессором. Некоторые регистры содержат только определенную информацию.
Регистры общего назначения - EAX, EBX, ECX, EDX. Они 32-х битные и делятся еще на две части, нижние из которых AX, BX, CD, DX - 16-ти битные, и деляется еще на два 8-ми битных регистра. Так, АХ делится на AH и AL, DX на DH и DL и т.д. Буква "Н" означает верхний регистр.
Так, AH и AL каждый по одному байту, АХ - 2 байта (или word - слово), ЕАХ - 4 байта (или dword - двойное слово). Эти регистры используются для операций с данными, такими, как сравнение, математические операции или запись данных в память.
Регистр СХ чаще всего используется как счетчик в циклах.
АН в DOS программах используется как определитель, какой сервис будет использоваться при вызове INT.
Регистры сегментов - это CS, DS, ES, FS, GS, SS. Эти регистры 16-ти битные, и содержат в себе первую половину адреса "оффсет:сегмент".
CS - сегмент кода (страница памяти) исполняемой в данный момент программы.
DS - сегмент (страница) данных исполняемой программы, т.е. константы, строковые ссылки и т.д.
SS - сегмент стека исполняемой программы.
ES, FS, GS - дополнительные сегменты, и могут не использоваться программой.
35. Команды PUSH и POP.
(PUSH operand onto stack) Размещение операнда в стеке
Схема команды: | push источник |
Назначение: размещение содержимого операнда источник в стеке.
Алгоритм работы: уменьшить значение указателя стека esp/sp на 4/2 (в зависимости от значения атрибута размера адреса — use16 или use32); записать источник в вершину стека (адресуемую парой ss:esp/sp).
(POP operand from the stack) Извлечение операнда из стека
Схема команды: | pop приемник |
Назначение: извлечение слова или двойного слова из стека.
Алгоритм работы: Алгоритм работы команды зависит от установленного атрибута размера адреса — use16 или use32: загрузить в приемник содержимое вершины стека (адресуется парой ss:esp/sp); увеличить содержимое esp/sp на 4 (2 байта) для use32 (соответственно для use16).
36. Регистры назначения.
Регистры общего назначения - EAX, EBX, ECX, EDX. Они 32-х битные и делятся еще на две части, нижние из которых AX, BX, CD, DX - 16-ти битные, и деляется еще на два 8-ми битных регистра. Так, АХ делится на AH и AL, DX на DH и DL и т.д. Буква "Н" означает верхний регистр.
Так, AH и AL каждый по одному байту, АХ - 2 байта (или word - слово), ЕАХ - 4 байта (или dword - двойное слово). Эти регистры используются для операций с данными, такими, как сравнение, математические операции или запись данных в память.
Регистр СХ чаще всего используется как счетчик в циклах.
АН в DOS программах используется как определитель, какой сервис будет использоваться при вызове INT.
37. Команды MUL, IMUL.
(MULtiply) Умножение целочисленное без учета знака
Схема команды: | mul множитель_1 |
Назначение: операция умножения двух целых чисел без учета знака.
Алгоритм работы: Команда выполняет умножение двух операндов без учета знаков. Алгоритм зависит от формата операнда команды и требует явного указания местоположения только одного сомножителя, который может быть расположен в памяти или в регистре. Местоположение второго сомножителя фиксировано и зависит от размера первого сомножителя:
если операнд, указанный в команде — байт, то второй сомножитель должен располагаться в al;
если операнд, указанный в команде — слово, то второй сомножитель должен располагаться в ax;
если операнд, указанный в команде — двойное слово, то второй сомножитель должен располагаться в eax.
Результат умножения помещается также в фиксированное место, определяемое размером сомножителей:
при умножении байтов результат помещается в ax;
при умножении слов результат помещается в пару dx:ax;
при умножении двойных слов результат помещается в пару edx:eax.
(Integer MULtiply) Умножение целочисленное со знаком
Схема команды: | imul множитель_1 |
Назначение: операция умножения двух целочисленных двоичных значений со знаком.
Алгоритм работы: Алгоритм работы команды зависит от используемой формы команды. Форма команды с одним операндом требует явного указания местоположения только одного сомножителя, который может быть расположен в ячейке памяти или регистре. Местоположение второго сомножителя фиксировано и зависит от размера первого сомножителя:
если операнд, указанный в команде, — байт, то второй сомножитель располагается в al;
если операнд, указанный в команде, — слово, то второй сомножитель располагается в ax;
если операнд, указанный в команде, — двойное слово, то второй сомножитель располагается в eax.
Результат умножения для команды с одним операндом также помещается в строго определенное место, определяемое размером сомножителей:
при умножении байтов результат помещается в ax;
при умножении слов результат помещается в пару dx:ax;
при умножении двойных слов результат помещается в пару edx:eax.
Команды с двумя и тремя операндами однозначно определяют расположение результата и сомножителей следующим образом:
в команде с двумя операндами первый операнд определяет местоположение первого сомножителя. На его место впоследствии будет записан результат. Второй операнд определяет местоположение второго сомножителя;
в команде с тремя операндами первый операнд определяет местоположение результата, второй операнд — местоположение первого сомножителя, третий операнд может быть непосредственно заданным значением размером в байт, слово или двойное слово.
38. Сегментные регистры.
Регистры сегментов - это CS, DS, ES, FS, GS, SS. Эти регистры 16-ти битные, и содержат в себе первую половину адреса "оффсет:сегмент".
CS - сегмент кода (страница памяти) исполняемой в данный момент программы.
DS - сегмент (страница) данных исполняемой программы, т.е. константы, строковые ссылки и т.д.
SS - сегмент стека исполняемой программы.
ES, FS, GS - дополнительные сегменты, и могут не использоваться программой.
39. Команды сдвига.
При выполнении команд сдвига флаг CF всегда содержит зна
чение последнего выдвинутого бита. Существуют следующие
команды cдвига:
Ассемблер для IBM PC. Глава 7
147
SHR ;Логический (беззнаковый) сдвиг вправо
SHL ;Логический (беззнаковый) сдвиг влево
SAR ;Арифметический сдвиг вправо
SAL ;Арифметический сдвиг влево
40. Сегменты.
Сегмент описывается с помощью директивы SEGMENT.
Она включает атрибуты:
1. Атрибут выравнивания сегмента.
"BYTE — выравнивание не выполняется. Сегмент может начинаться с любого адреса памяти;
WORD — сегмент начинается по адресу, кратному двум, то есть последний (младший) значащий бит физического адреса равен 0 (выравнивание по границе слова);
DWORD — сегмент начинается по адресу, кратному четырем, то есть два последних (младших) значащих бита равны 0 (выравнивание по границе двойного слова);
PARA — сегмент начинается по адресу, кратному 16, то есть последняя шестнадцатеричная цифра адреса должна быть Oh (выравнивание по границе параграфа);
PAGE — сегмент начинается по адресу, кратному 256, то есть две последние шестнадцатеричные цифры должны быть OOh (выравнивание по границе страницы размером 256 байт);
MEMPAGE — сегмент начинается по адресу, кратному 4 Кбайт, то есть три последние шестнадцатеричные цифры должны быть OOOh (адрес следующей страницы памяти размером 4 Кбайт)".
41. Команды MOV, PTR.
(MOVe operand) Пересылка операнда
Схема команды: | mov приемник,источник |
Назначение: пересылка данных между регистрами или регистрами и памятью.
Алгоритм работы: копирование второго операнда в первый операнд.
PTR это уточнение команды. byte ptr, word ptr
например mov [bx],100
ассемблер не знает 100 это байт, слово, двойное слово...
mov [bx],byte ptr 100
а так четко определено, что байт