Практическая часть. Задание № 3.1.Разработать программу (по вариантам), реализующую указанную формулу, исполнить программу в отладчике Debug с двумя наборами исходных данных
Задание № 3.1.Разработать программу (по вариантам), реализующую указанную формулу, исполнить программу в отладчике Debug с двумя наборами исходных данных, проверить правильность результатов.
1. Х = -4А + (В + С)/4 + 2 | 5. X = - (С + 2А + 4В + 8 ) |
2. X = (А - В) / 4 - 2С + 5 | 6. X = -А/2 + 4( В + 1 ) - ЗС |
3. X = (А/2 + В)/4 + С-1 | 7. X = А - 5( В - 2С ) + 2 |
4. X = (7А - 2В - 100) / 2 + С | 8. Х = 6A + (В-С + 1)/2 |
Заполните таблицу (значения параметров по вариантам):
Вариант | A | B | C | X | ||||
dec | hex | dec | hex | dec | hex | dec | hex | |
1. | D1 h | 5C h | A2 h | |||||
2. | F1 h | 3A h | E2 h | |||||
3. | 7A h | 8D h | 7C h | |||||
4. | 1C h | 5E h | 3D h | |||||
5. | 6D h | 2F h | 9E h | |||||
6. | 7E h | D4 h | F5 h | |||||
7. | B h | A7 h | 2B h | |||||
8. | D2 h | B3 h | 4A h |
В процессе трассировки программы заполнить таблицу (для одного набора данных):
Номер шага | Команда | AX | BX | CX | DX | CS | IP | DS |
Контрольные вопросы и задания.
1. Напишите необходимые команды для перемещения чисел 1, 2, и 3 в регистры AX, BX, и CX.
2. Покажите, как хранится в памяти байты 16-разрядного числа 0A6Bh.
3. Какая из команд приведенного ниже фрагмента кода программы записана с ошибкой? Объясните, в чем это ошибка заключается.
; описание данных
var1 DW 0
var2 DW 6
var3 DB 5
; фрагмент кода программы
MOV AX, BX
MOV var2, AL
MOV AX, BL
MOV BH, 4A6FH
MOV DX, 3
MOV AL, var3
MOV CS, 0
MOV IP, AX
MOV var1, var2
MOV DS, 1000H
MOV DS, ES
4. Дан фрагмент программы. Отметьте команды в которых необходимо использовать оператор PTR.
; описание данных
val_1 DB 10h, 20h
val_2 DW 1000h
; фрагмент кода программы
MOV AL, val_1
MOV DL, [BX]
MOV AL, val_1
MOV CL, val_2
5. Какое будет 16-разрядное значение в операнде получателе после выполнения каждой из ниже следующих команд. Если некоторые команды неправильные, запишите в ответе слово «ошибка».
; фрагмент кода программы
; код программ значение перед значение после
MOV AX, BX ; AX = 0023, BX = 00A5 AX = ?
MOV AH, 3 ; AX = 06AF AX = ?
MOV DL, count ; DX = 8F23, count = 1A DL = ?
MOV BL, AX ; BX = 00A5, AX = 4000 DL = ?
MOV DI, 100h ; DI = 06B9 DI = ?
MOV DS, CX ; DS = 0FB2, CX = 0020 DS = ?
MOV var1, BX ; BX = A000, var1 = ?
MOV count, AX ; count = 25, AX = 4000 count = ?
MOV var1, var2 ; var1 = 0400, var2 = 0500 var1 = ?
6. Определите тип адресации операнда, используемого в каждой из следующих команд:
a. MOV AL, 20 ;
b. MOV BX, OFFSET mes ;
7. Какой будет абсолютный первого слова, помещенного в стек, если указатель SP инициализирован значением 0100, а сегмент кода загружен по абсолютному адресу 18400h?
8. В каждой из команд приведенного фрагмента кода программы отметьте те, где необходимо использовать оператор PTR. Свой выбор обоснуете.
; описание данных
bval DB 10h, 20h
wval DW 1000h
; фрагмент кода программы
MOV AL, bval ;
MOV DL, [BX] ;
MOV CL, wval ;
9. В предположении, что array имеет смещение – 0120, заполните значения регистров, указанных с правой стороны, после выполнения каждой из команд приведенного фрагмента кода программы.
; описание данных
array DW 10h, 20h
val1 DW array
val2 DW 0
; фрагмент кода программы
MOV AX, @data ;
MOV DS, AX ; DS = ?
MOV AX, val1 ; AX = ?
MOV BX, array ; BX = ?
XCHG AX, BX ; AX = ?
MOV val2, BX ; val2 = ?
10. Из каких полей состоит строка программы на ассемблере ?
11. Какие поля обязательны, а какие можно опустить ?
12. Назначение директив stack, dataseg и codeseg.
13. Назначение директив db, dw.
14. Назначение оператора dup в директивах db, dw.
15. Назначение директивы end.
16. В чем различие между командами:
mov АХ, ВХ;
mov AX, [ВХ];
mov [АХ], ВХ ?
17. Какая директива завершает текст программы?
18. В чем различие между командой mov А, 1 и директивой A dw 1 ?
19. Пусть имя файла исходной программы - LAB.ASM . Что будут содержать файлы: LAB.OBJ, LAB.LST, LAB.EXE?
20. Какое значение будет в регистре AX после выполнения следующих команд ?
mov ax, 22h
mov cl, 2
mul cl
21. Какое значение будет в регистрах AX и DX после выполнения следующих команд?
mov dx, 0
mov ax, 222h
mov cx, 100h
mul cx
22. Какое значение будет в регистре AX после выполнения следующих команд ?
mov ax, 63h
mov bl, 10h
div bl
23. Какое значение будет в регистрах AX и DX после выполнения следующих команд ?
mov ax, 1234h
mov dx, 0
mov bx, 10h
div bx
24. Какое значение будет в регистрах AX и DX после выполнения следующих команд ?
mov ax, 4000h
mov dx, B00
mov bx, 10h
div bx
25. Напишите команды для умножения числа –5 на 3 и сохраните результат в 16-разрядной переменной val_1.
26. Напишите команды для деления числа –276 на 10 и сохраните результат в 16-разрядной переменной val_2.