Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

МЕТОДИЧЕСКИЕ УКАЗАНИЯ. Реализовать функцию Sum = х + у для данных типа integer





Реализовать функцию Sum = х + у для данных типа integer.

Это можно сделать на чистом Паскале — см. вариант 1, с применением встроенного Ассемблера (см. варианты 2 и 3), а также с помощью ассемблерной функции — вариант 4. Варианты 3 и 4 используют специальную переменную Паскаля @Result для возврата из функции значения. Вариант 4 — самый близкий вариант к чистому Ассемблеру. Именно его рекомендуется использовать при отладке тем, кто изучает Ассемблер.

Исходный текстпрограммы AsmlnPa& pas

ProgramAsmlnPas;

{

Sum = x + у для данных типа integer. Входные данные и результат на ДОПУСТИМЫЙ диапазон

!!!!!!!!!!!! НЕ ПРОВЕРЯЮТСЯ!!!!!!!!!!!!

}

Var

x.y.s: Integer;

{Вариант 1 — ПАСКАЛЬ} Function Sum1 (x, y: Integer): Integer; Begin

Sum1: = x+yEnd;

{Вариант 2 — Встроенный Ассемблер — передача параметров по ЗНАЧЕНИЮ}

Function Sum2 (x, y: lnteger): lnteger; Begin ASM

mov ax, x add ax.y mov @Result, ax END

End;

{Вариант 3 — ВстроенныйАссемблер — передачапараметровпоССЫЛКЕ} Function Sum3 (Var x, y: lnteger): lnteger; Begin ASM

lesbx.x

{КОСВЕННАЯ адресация — берем значение по адресу}

mov ax, es: [bx]

les bx.y

addax, es: [bx]

mov @Result, ax END End;

{Вариант 4 Ассемблернаяфункция}

Function Sum4 (x, y: lnteger): lnteger;

ASSEMBLER;

ASM

mov axtx

add ax, y

End;

begin

WritelnfВычислить: Sum = x + удляданныхтипаInteger; ");

Write ('Введите значение х ');

Readln(x);

Write ('Введите значение у ');

Readln(y);

s: = Sum1(x, y);

writeln ('ПАСКАЛЬ: Sum = \ х, 1 + \ у, 1 = \s); s: = 0; {для ЧИСТОТЫэксперимента}

s: = Sum2(x, y);

writeln (' Встроенный Ассемблер');

writeln (— передача параметров по ЗНАЧЕНИЮ: Sum =, х, +, у, =, s); s: = 0;

s: = Sum3(x, y);

writeln (' — передача параметров по ССЫЛКЕ: Sum =, х, +, y, =, s); s: = 0;

s: = Sum4(x, y);

writeln ('Ассемблернаяфункция: Sum = ', x, ' + ', y, ' = \s);

writeln ('Нажмителюбуюклавишу ');

Readlnend.

Ассемблер, встроенный в программу на языке C/C++

Поскольку язык С++ и компиляторы, его поддерживающие, продолжают развивать­ся, команды, которые поддерживает встроенный Ассемблер, существенно зависят от вер­сии компилятора и от его разработчиков.

ИнтегрированнаясредапрограммированияMicrosoftVisualС++

Здесь необходимо учитывать, что компилятор VC++ является 32-разрядным. Поэтому, чтобы СОХРАНИТЬ исходную постановку задачи, наш пример 6.1 немного видоизменит­ся:

1)описания данных типа int нужно ВСЮДУ заменить на тип shortint;

2)оператор asm должен быть с ДВУМЯ символами подчерка asm.

Исходныйтекстпрограммы 1срр

//1.срр: Defines the entry point for the console application.

//

include " stdafx.h"

#include " iostream.h"

#include " typeinfo.h"

short int funcCi(short int x) {

return x/3; }

short int funcCu (unsigned short int x) {

return x/3; }

short int funcAsml (short int x)
{ asm

{mov ax, x cwd







Дата добавления: 2014-11-10; просмотров: 638. Нарушение авторских прав; Мы поможем в написании вашей работы!




Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...


Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...


Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...


Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Неисправности автосцепки, с которыми запрещается постановка вагонов в поезд. Причины саморасцепов ЗАПРЕЩАЕТСЯ: постановка в поезда и следование в них вагонов, у которых автосцепное устройство имеет хотя бы одну из следующих неисправностей: - трещину в корпусе автосцепки, излом деталей механизма...

Понятие метода в психологии. Классификация методов психологии и их характеристика Метод – это путь, способ познания, посредством которого познается предмет науки (С...

ЛЕКАРСТВЕННЫЕ ФОРМЫ ДЛЯ ИНЪЕКЦИЙ К лекарственным формам для инъекций относятся водные, спиртовые и масляные растворы, суспензии, эмульсии, ново­галеновые препараты, жидкие органопрепараты и жидкие экс­тракты, а также порошки и таблетки для имплантации...

Этапы трансляции и их характеристика Трансляция (от лат. translatio — перевод) — процесс синтеза белка из аминокислот на матрице информационной (матричной) РНК (иРНК...

Условия, необходимые для появления жизни История жизни и история Земли неотделимы друг от друга, так как именно в процессах развития нашей планеты как космического тела закладывались определенные физические и химические условия, необходимые для появления и развития жизни...

Метод архитекторов Этот метод является наиболее часто используемым и может применяться в трех модификациях: способ с двумя точками схода, способ с одной точкой схода, способ вертикальной плоскости и опущенного плана...

Studopedia.info - Студопедия - 2014-2025 год . (0.012 сек.) русская версия | украинская версия