Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

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

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 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,394
По умолчанию

а что должна делать программа?
Нашедшего выход - затаптывают первым..
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,394
По умолчанию

Цитата:
Сообщение от 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 вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
неправильно работает программа 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 00:13
Программа работает неправильно. Настюня Помощь студентам 2 16.06.2012 17:34


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840