На хост-машине.

Из папки \\srv-iit3\courses3\mvn\tsis\ на сервере скопируйте файл XPsp2.rar на диск D: в свою рабочую папку. Распакуйте архив XPsp2.rar («Извлечь в текущую папку» или «Extract here»). В папке «XPsp2» файл *.vmx откройте с помощью VMware Workstation. Запустите виртуальную машину (Power ON this Virtual Machine).

На VM.

Имеется инструментальная папка C:\asm.  Имеется рабочая папка C:\Work. В рабочей папке имеется файл prog. exe.

В рабочей папке создайте ярлыки к инструментальной программе td. exe (отладчик) и к странице справочника start. htm (приложение к книге «Assembler. Учебник для вузов»), настроив первый ярлык на свою рабочую папку: из папки C:\asm\TASM4 файл td. exe перетащите правой кнопкой мыши в свою папку и в контекстном меню выберите «Создать ярлык», из папки C:\asm\Assembler файл start. htm перетащите правой кнопкой мыши в свою папку и в контекстном меню выберите «Создать ярлык», настройте ярлык к td. exe на свою рабочую папку:
(в Свойствах ярлыка на вкладке «Программа»). Запустите отладчик.

Загрузите prog. exe в отладчик.

Выполните две первые команды.

Найдите данные в сегменте данных.

Измените содержимое произвольных ячеек в сегменте данных (запишите байты 00, 55, AA, BB, CC, DD, EE, FF). Измените содержимое ячеек в сегменте кода:
    (в команде mov al,05 измените константу 05 на другое число, например, FF16, в команде mov ax,0005 измените константу 0005 на другое число, например, 123416).

Примечание 1. Синтаксис отладчика (ассемблера) предполагает, что числа начинаются с цифр (0AA, 0FF), в отличие от имен (AA, FF). Кроме того, в конце числа может стоять символ, обозначающий систему счисления (b, o, d или h). Таким образом, запись 0BB считается неправильной, правильно 0BBh. В отладчике системой счисления по умолчанию является шестнадцатеричная (hex).

НЕ нашли? Не то? Что вы ищете?

Вопрос 1. Чему равны в десятичной системе числа: 11b, 11o, 11d, 11h? 

Вопрос 2. Чему равен в десятичной системе шестнадцатеричный код 1B (это код символа ESC)?

Вопрос 3. Что запишется в ячейку памяти, если ввести «1B»?

Примечание 2. В исходном тексте программы на ассемблере эти две команды имеют одинаковую запись для константы 5:

mov al, 5        ; запись константы «5» в регистр al

mov ax, 5        ; запись константы «5» в регистр ax

Однако, после трансляции в машинный код, в памяти для константы будет отведено разное количество байт: 1 байт и 2 байта, соответственно. Хотя «константа типа не имеет», в машинной команде тип 2-го операнда в данном случае определяется типом (размером) регистра, как адреса 1-го операнда.

Выполните задание в соответствии с вариантом, записав команды по адресам:
    задание 1 –  по адресу 0007, задание 2        – по адресу 0009, задание 3        – по адресу 000B,

(в Задании 3 запишите 3 команды – сохранение содержимого регистра в стеке, запись в него константы, восстановление содержимого регистра из стека).

Задания к лабораторной работе №1 по курсу ТСИС


Выполнять вариант 12


№/№

Задание 1

Задание 2

Задание 3

mov bh, dh

mov cx, dx

si

mov al, dl

mov cx, bx

di

mov dh, bh

mov dx, cx

bp

mov dl, al

mov bx, cx

bx

mov bl, dl

mov ax, bx

cx

mov ah, ch

mov dx, ax

dx

mov dl, bl

mov bx, ax

si

mov ch, ah

mov ax, dx

dx

mov dh, al

mov cx, dx

ax

mov al, cl

mov bx, cx

bx

mov al, dh

mov dx, cx

cx

mov cl, al

mov cx, bx

di

mov ch, dh

mov dx, bx

bp

mov dh, ch

mov bx, dx

ax

mov al, bl

mov ax, bx

si