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

Аналіз і оптимізація програм з використанням асемблерних вставок у програмах мовою С++

Автор:   •  Май 16, 2019  •  Лабораторная работа  •  12,580 Слов (51 Страниц)  •  379 Просмотры

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

Лабораторна робота №1

Тема: Аналіз і оптимізація програм з використанням асемблерних вставок у програмах мовою С++

Мета: вивчення методів реалізації мовою Асемблера основних виконавчих операторів мови С++, ознайомлення з методикою включення текстів програм мовою Асемблера в програми мовою С++.

Варіант 3

#include 

#include"stdafx.h"

#include

int i, k;

int main() {

        int j;

        int A[9];

        k = 1;

        for (i = 0; i <= 8; i++) {

                j = k + i * 3;

                if (j>18)

                        A[i] = j;

                else {

                        k += 2;

                        A[i] = k;

                }

        }

        for (i = 0; i <= 8; i++)

                printf("%d ", A[i]);

        printf("\n");

        system("pause");

        return 0;

}

Результат роботи програми[pic 1]

Асемблерний код програми

; Listing generated by Microsoft (R) Optimizing Compiler Version 19.00.24215.1

        TITLE        C:\Users\User\Desktop\лт\trt\trt\trt.cpp

        .686P

        .XMM

        include listing.inc

        .model        flat

INCLUDELIB MSVCRTD

INCLUDELIB OLDNAMES

PUBLIC        ?i@@3HA                                                ; i

PUBLIC        ?k@@3HA                                                ; k

_BSS        SEGMENT

?i@@3HA        DD        01H DUP (?)                                ; i

?k@@3HA        DD        01H DUP (?)                                ; k

_BSS        ENDS

PUBLIC        ___local_stdio_printf_options

PUBLIC        __vfprintf_l

PUBLIC        ??$__vcrt_va_start_verify_argument_type@QBD@@YAXXZ ; __vcrt_va_start_verify_argument_type

PUBLIC        _printf

PUBLIC        _main

PUBLIC        ?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA ; `__local_stdio_printf_options'::`2'::_OptionsStorage

PUBLIC        ??_C@_03JDANDILB@?$CFd?5?$AA@                        ; `string'

PUBLIC        ??_C@_01EEMJAFIK@?6?$AA@                        ; `string'

PUBLIC        ??_C@_05PDJBBECF@pause?$AA@                        ; `string'

EXTRN        __imp____acrt_iob_func:PROC

EXTRN        __imp____stdio_common_vfprintf:PROC

EXTRN        __imp__system:PROC

EXTRN        @_RTC_CheckStackVars@8:PROC

EXTRN        __RTC_CheckEsp:PROC

EXTRN        __RTC_InitBase:PROC

EXTRN        __RTC_Shutdown:PROC

;        COMDAT ?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA

_BSS        SEGMENT

?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA DQ 01H DUP (?) ; `__local_stdio_printf_options'::`2'::_OptionsStorage

_BSS        ENDS

;        COMDAT rtc$TMZ

rtc$TMZ        SEGMENT

__RTC_Shutdown.rtc$TMZ DD FLAT:__RTC_Shutdown

rtc$TMZ        ENDS

;        COMDAT rtc$IMZ

rtc$IMZ        SEGMENT

__RTC_InitBase.rtc$IMZ DD FLAT:__RTC_InitBase

rtc$IMZ        ENDS

;        COMDAT ??_C@_05PDJBBECF@pause?$AA@

CONST        SEGMENT

??_C@_05PDJBBECF@pause?$AA@ DB 'pause', 00H                ; `string'

CONST        ENDS

;        COMDAT ??_C@_01EEMJAFIK@?6?$AA@

CONST        SEGMENT

??_C@_01EEMJAFIK@?6?$AA@ DB 0aH, 00H                        ; `string'

CONST        ENDS

;        COMDAT ??_C@_03JDANDILB@?$CFd?5?$AA@

CONST        SEGMENT

??_C@_03JDANDILB@?$CFd?5?$AA@ DB '%d ', 00H                ; `string'

CONST        ENDS

; Function compile flags: /Odtp /RTCsu /ZI

; File c:\users\user\desktop\лт\trt\trt\trt.cpp

;        COMDAT _main

_TEXT        SEGMENT

_A$ = -52                                                ; size = 36

_j$ = -8                                                ; size = 4

_main        PROC                                                ; COMDAT

; 6    : int main() {

  00000        55                 push         ebp

  00001        8b ec                 mov         ebp, esp

  00003        81 ec f8 00 00

...

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