Вариант 1. Написать автономную программу на Ассемблере, выполняющую арифметические и логические операции над словами и байтами по вариантам

  • ID: 03417 
  • 9 страниц
60 рубСкачать

как получить скидку

laba1.asm

laba1.cpp

laba1 for C.asm

Отчет.docx

Фрагмент работы:

Вариант 1. Написать автономную программу на Ассемблере, выполняющу…

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

Исходные данные:

A = 2438H

B = 1329H

C = -157

D = 100

Вариант 1.

Переставить 1-ю и 3-ю тетрады в слове А

Сложить А и В в двоично-десятичном виде

Выделить 2-ю и 4-ю тетрады в слове В и сложить их, как 2 двоичных числа

Умножить А на D, в старшем слове выделить два младших разряда и объединить по «ИЛИ» с результатом п.2

Написать автономную программу на Ассемблере, выполняющую арифметические и логические операции над словами и байтами по вариантам согласно заданиям. Исходные данные задать с помощью директивы EQU. Результаты работы поместить в ячейки памяти. Проконтролировать правильность работы программы в пошаговом режиме.

Задание 1

TITLE Laba1

A EQU 2438h

B EQU 1329h

C EQU -157

D EQU 100

MODEL TINY

STACK 100h

DATA

aa DW 0

bb DW 0

cc DW 0

CODE

main PROC

mov AX, @data

mov DS, AX

;-------Task №1-------

;-------Task №2-------

;-------Task №3-------

;-------Task №4-------

mov AX,4C00h

int 21h

main ENDP

END main

Задание 2

Оформить эту же программу в виде Си-функции. В качестве исходных данных использовать значения глобальных переменных из головной Си-программы. Результат работы поместить в те же глобальные переменные. Ввод и вывод данных оформить в головной программе.

;-------Task 1-------

;-------Task 2-------

;-------Task 3-------

;-------Task 4-------

ret

laba1 ENP

END

Задание 3

Оформить эту же программу в виде ассемблерного фрагмента в головной программе. Исходные данные и результат поместить в локальные переменные, описанные в головной программе.

void main()

{

const A=0x2438;

const B=0x1329;

const C=-157;

const D=100;