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

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

МЕТОДИЧЕСКИЕ УКАЗАНИЯ. Реализовать функцию 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; просмотров: 613. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

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

Тактика действий нарядов полиции по предупреждению и пресечению правонарушений при проведении массовых мероприятий К особенностям проведения массовых мероприятий и факторам, влияющим на охрану общественного порядка и обеспечение общественной безопасности, можно отнести значительное количество субъектов, принимающих участие в их подготовке и проведении...

Тактические действия нарядов полиции по предупреждению и пресечению групповых нарушений общественного порядка и массовых беспорядков В целях предупреждения разрастания групповых нарушений общественного порядка (далееГНОП) в массовые беспорядки подразделения (наряды) полиции осуществляют следующие мероприятия...

Методика исследования периферических лимфатических узлов. Исследование периферических лимфатических узлов производится с помощью осмотра и пальпации...

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

Лечебно-охранительный режим, его элементы и значение.   Терапевтическое воздействие на пациента подразумевает не только использование всех видов лечения, но и применение лечебно-охранительного режима – соблюдение условий поведения, способствующих выздоровлению...

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