Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Гибридная программа Си-Ассемблер

Автор:   •  Октябрь 1, 2021  •  Лабораторная работа  •  815 Слов (4 Страниц)  •  466 Просмотры

Страница 1 из 4

Министерство образования Российской Федерации

Пензенский государственный университет

Кафедра «Вычислительная техника»

                                

ОТЧЕТ

по лабораторной работе №7

по курсу «Программирование»

на тему «Гибридная программа Си-Ассемблер»

Выполнил:

     Приняла:

Пенза 2020

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

Лабораторное задание.   Разработать программу вычисления функции:  y=a+b-c*d/e

Описание метода решения задачи:

  1. Создал фунцию для вызова scanf в ассемблерной вставке
  2. Написал код для вычисления функции
  3. Вывел результат через printf d ассемблерном коде

Листинг:

#define _CRT_SECURE_NO_WARNINGS

#include <iostream>

#include <stdio.h>

#include <cstdlib>

#include <windows.h>

#include <conio.h>

using namespace std;

int s;

char str1[] = "%d";

char str2[] = "функция: y=a+b-c*d/e результат = %d";

_declspec(naked)

int input()

{

   

   

    __asm {

        lea esi, s;

        push esi;

        lea eax, str1

        push eax;

        call scanf;

        pop ebx

        pop ebx

        lea eax, s

        ret

    }

}

int main() {

    SetConsoleCP(1251);

    SetConsoleOutputCP(1251);

    int a, b, c, d, e, y;

    char str1[] = "%d";

    char str2[] = "функция: y=a+b-c*d/e результат = %d";

    __asm {

        call input

        mov eax, [s]

        mov a, eax

        call input

        mov eax, [s]

        mov b, eax

        call input

        mov eax, [s]

        mov c, eax

        call input

        mov eax, [s]

        mov d, eax

        call input

        mov eax, [s]

        mov e, eax

...

Скачать:   txt (3.9 Kb)   pdf (225.2 Kb)   docx (659.5 Kb)  
Продолжить читать еще 3 страниц(ы) »
Доступно только на Essays.club