Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2019, 16:01   #1
Tpai
 
Регистрация: 09.06.2018
Сообщений: 9
Сообщение Неправильно работает программа. Я подозреваю, что из-за неправильных переходов jump.

Вроде сейчас заработала. Не знаю, верно ли. Не могу понять, как его (массив) вывести и проверить. Изначально программа вообще "падала"
Код:
.586
.model flat, stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
include \masm32\include\debug.inc
include \masm32\include\masm32.inc
include \masm32\macros\macros.asm
include \masm32\include\msvcrt.inc
include \masm32\include\Fpu.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\masm32.lib
includelib \masm32\lib\debug.lib
includelib \masm32\lib\user32.lib
includelib \masm32\lib\Fpu.lib
includelib \masm32\lib\msvcrt.lib
.data
    arr dd 9,2,6,4,3,6,-7,-8,9,-5
    format db "%d", 0
    format_c db "%c", 0
.code
start:
    mov ecx, 10;
    beg:
    mov esi, ecx;
    dec esi;
    begin:
        mov eax,[arr+ecx*4-4]
        mov ebx,[arr+esi*4-4]
        cmp eax, ebx
        je next
        jl next
        mov [arr+ecx*4-4], ebx
        mov [arr+esi*4-4], eax
    next: 
        dec esi
        cmp esi,0
        jnz begin
    dec ecx
    cmp ecx,1
    jnz beg
invoke ExitProcess,0
end start

Последний раз редактировалось Tpai; 11.12.2019 в 16:52. Причина: Понял кое-что
Tpai вне форума Ответить с цитированием
Старый 11.12.2019, 16:43   #2
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

а что должна делать программа?
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 11.12.2019, 16:50   #3
Tpai
 
Регистрация: 09.06.2018
Сообщений: 9
По умолчанию

Цитата:
Сообщение от R71MT Посмотреть сообщение
а что должна делать программа?
Сортировать массив по убыванию. Она до этого у меня "падала", но я исправил. Теперь, чтоб понять, правильно ли она в принципе работает, хотел бы вывести массив.
Tpai вне форума Ответить с цитированием
Старый 11.12.2019, 21:20   #4
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Цитата:
Сообщение от Tpai Посмотреть сообщение
хотел бы вывести массив.
на фасме вывести в консоль можно так:
Код:
format   pe console
include 'win32ax.inc'
entry    start
;-----
.data
capt     db  13,10,'Print ARRAY'
         db  13,10,'***************',13,10,0
arr      dd  9,2,6,4,3,6,-7,-8,9,-5
len      =   ($ - arr)/4          ; длина массива
frmt     db  '%d, ',0             ; спецификатор
;-----
.code
start:
        cinvoke  printf,capt      ; шапка
         mov     ecx,len          ; длина
         mov     esi,arr          ; адрес начала массива
@@:      lodsd                    ; EAX = дворд из ESI (esi+4)
         push    ecx              ; ++ запомнить счётчик
        cinvoke  printf,frmt,eax  ; EAX на консоль
         pop     ecx              ; -- счётчик на родину
         loop    @b               ; промотать ECX-раз..

@exit:  cinvoke  scanf,frmt,frmt+2   ; клава
        cinvoke  exit,0              ; на выход!
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
section  '.idata' import data readable
library  msvcrt,'msvcrt.dll'
import   msvcrt, printf,'printf',scanf,'scanf',exit,'exit'
Изображения
Тип файла: png 859575.png (2.7 Кб, 12 просмотров)
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
неправильно работает программа BLACK_RAIN Общие вопросы C/C++ 5 21.11.2018 16:44
Неправильно работает программа. Evgeny_L Общие вопросы C/C++ 0 09.11.2018 22:56
Неправильно работает программа (С#) julia9311 Помощь студентам 0 01.12.2014 02:10
неправильно работает программа CppForYou Общие вопросы C/C++ 0 26.04.2013 01:13
Программа работает неправильно. Настюня Помощь студентам 2 16.06.2012 18:34