Similar presentations:
Системное программирование. Методические указания к лабораторной работе № 7
1.
=== Системное программирование. Методические указания к лабораторной работе № 7. ===Методические указания к лабораторной работе № 7.
Задание. Создайте программу Lab7.exe, которая выдает текстовые сообщения “N=M”, “N>M”
или “N<M” в зависимости от значений выражений N=5*(val1+val2) и M=val3*(3+val4) где val1, val2,
val3, val4 соответствуют вашему варианту
val1=11, val2=3, val3=3, val4=8
1. Используя текстовый редактор, создайте файл lab7.asm в папке C:\Masm615.
2. Введите программный код программы вашего варианта. Для добавления значений регистров
после выполнения математических операций в комментарии воспользуйтесь отладчиком.
.model small
.stack 100h
.data
N_greater_MBYTE "N>M", 0Dh,0Ah, "$"
N_less_M BYTE "N<M", 0Dh,0Ah, "$"
N_equal_M BYTE "N=M", 0Dh,0Ah, "$"
val1
val2
val3
val4
N
M
WORD ?
WORD ?
WORD ?
WORD ?
WORD ?
WORD ?
.code
.386
main:
mov ax, @data ; Сегментный адрес
mov ds,ax ; начала определения данных в ds
COMMENT !
1) Определите переменные val1, val2, val3, val4 числами,
которые соответствуют вашему варианту.
!
mov ax, 11
; Определяем переменные
mov val1, ax
; val1, val2, val3, val4 числами,
mov ax, 3
; которые соответствуют варианту
mov val2, ax
mov ax, 3
mov val3, ax
mov ax, 8
mov val4, ax
COMMENT !
2) Вычислите первое выражение N=5*(val1+val2).
От вет запишите в переменную N.
!
mov ax, val1
add
ax, val2
mov bx,5
mul bx
mov N, ax
1
2.
=== Системное программирование. Методические указания к лабораторной работе № 7. ===COMMENT !
3) Вычислите второе выражение M=val3*(3+val4)
Ответ запишите в переменную М.
!
mov ax, val4
add
ax, 3
mul val3
mov M, ax
COMMENT !
4) Сравните значения N и M. В зависимости от полученного
результата сформируйте вывод используя определенные
переменные N_greater_M, N_less_M, N_equal_M и метки
write_N_greater_M, write_N_less_M, write_N_equal_M.
!
mov ax, N
mov bx, M
cmp ax, bx
jg
write_N_greater_M
jl
write_N_less_M
je
write_N_equal_M
write_N_greater_M:
mov ah,9
mov dx, offset N_greater_M
int 21h
jmp exit_program
write_N_less_M:
mov ah,9
mov dx, offset N_less_M
int 21h
jmp exit_program
write_N_equal_M:
mov ah,9
mov dx, offset N_equal_M
int 21h
jmp exit_program
exit_program:
mov ax, 4C00h ; Номер функции DOS:4C00h завершить программу в АХ
int
21h
; Вызов функции дос из АХ
end main
; ml /c /Zi /Fl lab7.asm
; link /co lab7.obj;
;5) Запишите результат работы программы для вашего
;варианта
2
3.
=== Системное программирование. Методические указания к лабораторной работе № 7. ===3. Произведите трансляцию и компоновку программы.
3.1 Откройте эмулятор MSDOS (Пуск → Все программы → Стандартные → Командная строка)
3.2 Используя команды MSDOS перейдите в папку C:\Masm615 (cd C:\Masm615)
3.3 Ввести команды с учетом регистра символов:
ml /c /Zi /Fl lab7.asm
link /co lab7.obj;
4. Результат работы программы
3