Лабораторная работа 2
Задание: Вычислить сумму 2 чисел на ассемблере 29 и 3
Код
Начало сегмента данных SEG1
SEG1 SEGMENT
OPER1 DB 29 переменная с именем OPER1 размером в 1 байт и значением 29
OPER2 DB 3 переменная с именем OPER2 размером в 1 байт значением 3
SEG1 ENDS Конец сегмента данных SEG1
SEG2 SEGMENT Начало сегмента данных SEG2
RESULT DB ? переменная с именем RESULT размером в 1 байт и неопределенным значением
SEG2 ENDS Конец сегмента данных SEG2
CODE SEGMENT Начало сегмента кода CODE
ASSUME CS:CODE, DS:SEG1 инициализация сегмента данных DS
START:
MOV AX,SEG1 инициализация сегмента данных DS
MOV DS,AX инициализация сегмента данных DS
MOV AH,OPER1 копирование в регистр AH значения переменной OPER1
ADD AH, OPER2 сложение содержимого регистра AH с содержимым переменной OPER2 и запись результата в регистр AH
ASSUME DS:NOTHING, DS:SEG2 инициализация сегмента данных DS
MOV BX, SEG2 инициализация сегмента данных DS
MOV DS,BX инициализация сегмента данных DS
MOV RESULT, AH копирование значения регистра AH в переменную RESULT
MOV AH, 4CH вызов прерывания ОС функция 4C 21 прерывания
INT 21H
CODE ENDS Конец сегмента кода
END START
Скриншоты работы программы
Лабораторная работа 3
Задание: Вычислить разность 2 чисел на ассемблере 29 и 3
Вычислить произведение 2 чисел на ассемблере 29 и 3
Вычислить частное от деления 2 чисел на ассемблере 29 и 3
Код
SEG1 SEGMENT
OPER1 DB 29
OPER2 DB 3
SEG1 ENDS
SEG2 SEGMENT
RESULT DB ?
SEG2 ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:SEG1
START:
MOV AX,SEG1
MOV DS,AX
MOV AH,OPER1
SUB AH, OPER2 вычитание из содержимого регистра AH содержимого переменной OPER2 и запись результата в регистр AH
ASSUME DS:NOTHING, DS:SEG2
MOV BX, SEG2
MOV DS,BX
MOV RESULT, AH
MOV AH, 4CH
INT 21H
CODE ENDS
END START
Скриншоты работы программы
Вычислить произведение 2 чисел на ассемблере 29 и 3
Код
SEG1 SEGMENT
OPER1 DB 29
OPER2 DB 3
SEG1 ENDS
SEG2 SEGMENT
RESULT DW ?
SEG2 ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:SEG1
START:
MOV AX,SEG1
MOV DS,AX
MOV AL,OPER1
MUL OPER2 умножение содержимого регистра AH на содержимое переменной OPER2 и запись результата в регистр AX
ASSUME DS:NOTHING, DS:SEG2
MOV BX, SEG2
MOV DS,BX
MOV RESULT, AX
MOV AH, 4CH
INT 21H
CODE ENDS
END START
Скриншоты работы программы
Вычислить частное от деления 2 чисел на ассемблере 29 и 3
Код
SEG1 SEGMENT
OPER1 DW 29
OPER2 DB 3
SEG1 ENDS
SEG2 SEGMENT
RESULT DB ?
SEG2 ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:SEG1
START:
MOV AX,SEG1
MOV DS,AX
MOV AX,OPER1
DIV OPER2 деление содержимого регистра AX на содержимое переменной OPER2 и запись частного в регистр AL а остатка в AH
ASSUME DS:NOTHING, DS:SEG2
MOV BX, SEG2
MOV DS,BX
MOV RESULT, AL
MOV AH, 4CH
INT 21H
CODE ENDS
END START
Скриншоты работы программы
Лабораторная работа 4
Задание: Вычислить выражение на ассемблере:
(15/4+6)*4-11
15/4=3 и остаток 3
3+6=9
9*4=36
36-11=25
=19h
Код
SEG1 SEGMENT
OPER1 DW 15
OPER2 DB 4
OPER3 DB 6
OPER4 DB 4
OPER5 DW 11
SEG1 ENDS
SEG2 SEGMENT
RESULT DW ?
SEG2 ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:SEG1
START:
MOV AX,SEG1
MOV DS,AX
MOV AX,OPER1
DIV OPER2
ADD AL, OPER3
MUL OPER4
SUB AX, OPER5
ASSUME DS:NOTHING, DS:SEG2
MOV BX, SEG2
MOV DS,BX
MOV RESULT, AX
MOV AH, 4CH
INT 21H
CODE ENDS
END START
Скриншоты работы программы