Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабы / Laboratornaya_rabota_2_MPS.docx
Скачиваний:
72
Добавлен:
18.04.2022
Размер:
27.01 Кб
Скачать

3. Порядок выполнения работы

Написать программу на ассемблере, выполняющую арифметические

операции над целочисленными данными согласно заданиям, приведенным ниже. Общие требования:

--вид буфера для хранения массива и адресация в нем выбирается

самостоятельно;

--числовые данные вводятся с клавиатуры в виде строк символов (по

умолчанию используется 10 с/c), при этом производится проверка на

переполнение (по умолчанию на знаковые 16 битные данные);

--константы задать с помощью директивы EQU;

--вычисления проверять на возникновение ошибок и переполнений;

--старт программы, ввод-вывод данных и обработку ошибок оформлять

выводом в консоли поясняющих строк.

Задание:

Вычислить значения выражений. Все величины в выражении однобайтовые. Результат выдать на экран.

Вычислить значения выражений. Все величины в выражении однобайтовые. Результат выдать на экран. Если задать величины x, y, z.

1.

41X2+4Y2+2М2

2*z+x*y+15*y*z+3 x=1, y=2, z=3

2.

5X2+5Y2+5М2

z+x*y-11*x*z+11 x=2, y=4, z=6

3.

4X2+21Y2+9М2

3*x+x*z-17*y*z+30 x=3, y=9, z=27

4.

3X2+35Y2+33М2

9*z+3*x*y-15*x*y*z+33 x=4, y=8, z=16

5.

X2+8Y2+4М2

2*y+x*z-5*x*y*z-20 x=1, y=8, z=4

6.

4X2+8Y2+8М2

5*z+x*y-35*x*z-90 x=4, y=8, z=8

7.

11X2+22Y2+33М2

7*x+x^2-15*y*z+75 x=11, y=22, z=33

8.

1X2+2Y2+3М2

5*y+z*y-4*x*z+24 x=1, y=4, z=2

9.

4X2+5Y2+6М2

15*z-x*y+21*x*y*z+100 x=1, y=2, z=3

10.

10X2+5Y2+2М2

8*y+x*z+99*x-y*z-100 x=2, y=4, z=6

11.

24X2+18Y2+М2

x+x*z-73*y*z-7 x=3, y=9, z=27

12.

2X2+4Y2+8М2

16*y+x*z-15*x*z+40 x=4, y=8, z=16

13.

8X2+9Y2+21М2

9*z+8*x*y+5*x*z+70 x=1, y=8, z=4

Вычислить выражение 18*z*x*y-15*x*y*z+30+19*(x-y). Если задать величины x, y, z=1, то ответ? Все величины в выражении однобайтовые. Результат выдать на экран.  Программа № 2 (образец)  format PE GUI 4.0  include 'include\WIN32AX.INC'  .data  formath db "%0lx",0 ; Задание формата вывода 16  formatd db "%0d",0 ; Задание формата вывода 10  result db 256 dup(?) ;В этой строке сохраняется результат  ;после его преобразования  x db 2 ; 20h  y db 2 ; 40h  z db 2 ; 50h ; 18*z*x*y-15*x*y*z+30+19*(x-y)= , если ;x=y=z=1  c db 7  .code  start:  xor AX,AX  xor dX,dX  MOV AL,18  MUL [x]  MUL [y]  MUL [z]  mov bx,ax  MOV AL,15  MUL [x]  MUL [y]  MUL [z]  sub bx,ax  add bx,30  MOV CL,19  MOV al,[x]  sub al,[y]  MUL cl  add ax,bx  invoke wsprintf,result,formatd,ax,dx ;Преобразуем число в строку  invoke MessageBox,0,result,"перемнож,слож и вычит байт",MB_OK ;Вывод  invoke ExitProcess,0 ;Выход из программы  .end start

Соседние файлы в папке лабы