2-131
Лабораторная работа № 12
Тема: Использование в программах ветвления.
Цель занятия: Ознакомиться с возможной последовательностью команд в
ассемблерной программе, с вариантами ввода и вывода данных, изучить
принципы функционирования памяти и микропроцессора компьютера при
выполнении ветвлений. Приобрести навыки использования команд
условного и безусловного переходов при написании ассемблерных программ.
Получить представление об особенностях обработки данных, команд и
режимах доступа к данным при организации ветвлений.
Задание 1
.386
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
include \masm32\include\masm32.inc
include \masm32\include\debug.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\masm32.lib
includelib \masm32\lib\debug.lib
.data
.code
start:
mov al,4
mov cl,10
cmp al,cl
Дробинка А.Н гр. 2-131
JE PrintDec1
JA PrintDec2
JB PrintDec3
PrintDec1:
PrintDec al
jmp end_if
PrintDec2:
PrintDec al
jmp end_if
PrintDec3:
PrintDec cl
jmp end_if
end_if:
end start
При А=4, Б=10
Задание 2
.386
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
include \masm32\include\masm32.inc
include \masm32\include\debug.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\masm32.lib
includelib \masm32\lib\debug.lib
.data
.code
start:
mov al,4
mov cl,5
cmp al,cl
JA PrintDec1
JB PrintDec2
PrintDec1:
add al,cl
PrintDec al
jmp end_if
PrintDec2:
sub al,cl
Дробинка А.Н гр. 2-131
PrintDec al
jmp end_if
end_if:
end start
Задание 3
.386
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
include \masm32\include\masm32.inc
include \masm32\include\debug.inc
Дробинка А.Н гр. 2-131
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\masm32.lib
includelib \masm32\lib\debug.lib
.data
.code
start:
mov al,6
mov bl,2
mov cl,al
cmp al,bl
JA PrintDec1
JB PrintDec2
PrintDec1:
mul bl
PrintDec al
jmp end_if
PrintDec2:
mov al,bl
mov bl,cl
PrintDec al
PrintDec bl
jmp end_if
end_if:
end start
Дробинка А.Н гр. 2-131