Мегаобучалка Главная | О нас | Обратная связь


Практическая работа №2



2019-11-13 466 Обсуждений (0)
Практическая работа №2 0.00 из 5.00 0 оценок




Работа с операциями сложения и вычитания над целыми числами.

Работа с операциями умножение и деления целых чисел.

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

  1. Загрузка системы

2. Создание файла с текстом программы задания

3. Исправление ошибок компиляции

4. Создание файла, содержащего исполняемый модуль программы

5. Ввод исходных данных

6. Отладка программы на контрольном примере

Задание 1. Создайте программу на FASM по образцу. Определите какая команда отвечает за сложение.

Format PE GUI 4.0

 include 'include\WIN32AX.INC'

.data

formats db "%d",0 ; Задание формата вывода в 10-ой форме

Result db 256 dup(?) ;В этой строке сохраняется результат                                     

;после его преобразования

A dd 01h

B dd 02h

C dw 03h           ; определение исходных данных

D dw 04h

E db 0FEh

F db 01h

Code

start :

 ;Алгоритм сложения двух 32 -разрядных слов

mov Eax,[A]               ;Перемещаем в eax число A

add EaX,[B]               ;Складываем содержимое eax и B.

Invoke wsprintf,result,formats,eax ;Преобразуем число в строку

invoke MessageBox,0,result,"А+Б 32- разрядные",MB_OK ;Вывод

Mov Eax,0

Invoke wsprintf,result,formats,Eax ;Преобразуем число в строку

invoke MessageBox,0,result," Промежут Eax ",MB_OK ; Вывод

;Алгоритм сложения двух 16 -разрядных слов

mov ax,word[C]

add aX,word[D]

invoke wsprintf,result,formats,Eax ;Преобразуем число в строку invoke MessageBox,0,result,"С + Д 16-разрядные",MB_OK

;Алгоритм сложения двух 8 -разрядных слов

mov aL,byte[E]

add al,byte[F]

Invoke wsprintf,result,formats,Eax ;Преобразуем число в строку

invoke MessageBox,0,result,"E + F 8- разрядные ",MB_OK ; Вывод

Invoke ExitProcess,0     ; Выход из программы

End start            

Задание 2. Используя образец программы, выполнить вычитание 16,32 и 8разрядных слов, слов и байтов. Результаты выдать на экран. Команду сложения заменить на команду вычитания

(необходимо знать команду вычитания)

Задание 3. Вычислить выражение 6X2+10Y2+4Z2. Все величины в выражении однобайтовые. Результат выдать на экран.

Программа (образец)

Format PE GUI 4.0

include ' include \ WIN 32 AX . INC '

 .data  ; сегмент данных

formats db "%d",0 ; Задание формата вывода в 10-ой форме

Result db 256 dup(?) ;В этой строке сохраняется результат ;после его преобразования

A db 6

B db 10

C db 4

X DB 2

Y DB 1

Z DB 3

Code  ; сегмент кода

Start :  ; Точка старта программы

Xor EAX , EAX

Mov AL,[X]

Mul [X]

Mul [A]

Mov BL,AL

Mov AL,[Y]

Mul [Y]

Mul [B]

Mov DL,AL

Mov AL,[Z]

Mul [Z]

Mul [C]

Add AL,BL

Add AL,DL

Invoke wsprintf,result,formats,EAX

invoke MessageBox,0,result,"6Xx+10Yy+4Zz",MB_OK

Invoke ExitProcess,0     ; Выход из программы

End start

Напишите ответ в тетради к этой задаче. Измените данные так, чтобы следующий ответ не совпал с предыдущим.

Задание 4. Вычислить выражение 4X2+5Y2+3М2 . Все величины в выражении однобайтовые. Результат выдать на экран.

Задание 5. Вычислить выражение 7X2+2Y2/3Z2 . Все величины в выражении однобайтовые. Результат выдать на экран.

Задание 6. Вычислить выражение 7*z+x*y-15*x*y*z+30

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

Программа №6.(образец)

Format PE GUI 4.0

include ‘ include \ WIN 32 AX . INC ’

 .data

formath db «%0lx»,0 ; Задание формата вывода 16

formatd db «%d»,0 ; Задание формата вывода 10

Result db 256 dup(?) ;В этой строке сохраняется результат

;после его преобразования

X      db 1 ; 20h

Y      db 1 ; 40h

z      db 1 ; 50h   ; 7*z+x*y-15*x*y*z+30=23 , если x=y=z=1

C     db 7

Code

start:

Xor   AX,AX

Xor   dX , dX

MOV AL,[z] ;байт умножается на байт

MUL [c]   ;результат в АХ,

Mov bx,ax

MOV AL,[y] ;байт умножается на байт

MUL [x]   ;результат в АХ,

MUL [y]

Add   bx,ax

MOV AL,15 ;байт умножается на байт

MUL [z]   ;результат в АХ,

MUL [x]

MUL [y]

Sub  bx,ax

Add  bx,30

Invoke wsprintf,result,formath,bx,dx ;ax,dx ; Преобразуем число в строку

Invoke MessageBox,0,result,” перемнож , слож и вычит байт ”,MB_OK

Invoke ExitProcess,0 ; Выход из программы

.end start   

Задание 7.

Вычислить выражение 6*х+z*y-11*x*y*z+13

            Если задать величины x, y, z=1

Практическая работа №3

 

 

Тема: Работа с командами условного и безусловного перехода

Работа с командами ввода/вывода данных. Выполнение прерываний в программе

Задание 1. Вычислить выражение 18* z * x * y -15* x * y * z +30+19*( x - y )

            Если задать величины x , y , z =1, то ответ =

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

Программа № 1

Format PE GUI 4.0

 include 'include\WIN32AX.INC'

 

Data

formath db "%0 lx ",0 ; Задание формата вывода 16

formatd db "%0 d ",0 ; Задание формата вывода 10

Result db 256 dup (?) ;В этой строке сохраняется результат

;после его преобразования

X      db 2 ; 20 h

Y      db 2 ; 40 h

z      db 2 ; 50 h ; 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

-1.1 Задание – Аналогично составьте программу с величинами: x, y, z=2,

Выполнить самостоятельно задания:

2. 2-30*z*x*y-16*x*y*z-41+4*(х-y)

3. 129- z*x*y+x/y+85

4. 70-17*x-65*y+13*z

5. 88*z-76*y+51*x

 

Задание 6. Вычислить выражение x * x * x - y * y * y - z * z * z * z +137

            Если задать величины x, y, z=1.

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

;Программа №6

Format PE GUI 4.0

 include 'include\WIN32AX.INC'

 

Data

formath db "%0 lx ",0 ; Задание формата вывода 16

formatd db "%d",0 ; Задание формата вывода 10

Result db 256 dup(?) ;В этой строке сохраняется результат

;после его преобразования

X    db 01h

Y   db 02h

Z   db 05h  

Code

start:

Xor AX,AX

Xor dX,dX

MOV AL,[x]   ;байт умножается на байт

MUL [x]      ;результат в АХ,

MUL [x]

Mov bx,ax

MOV AL,[y]   ;байт умножается на байт

MUL [y]      ;результат в АХ,

MUL [y]

Sub bx,ax

MOV AL,[z]   ;байт умножается на байт

MUL [z]      ;результат в АХ,

MUL [z]

Sub bx,ax

;mov bx,z

Add bx,137



2019-11-13 466 Обсуждений (0)
Практическая работа №2 0.00 из 5.00 0 оценок









Обсуждение в статье: Практическая работа №2

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы...
Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация...
Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас...
Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (466)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.008 сек.)