Bubble Sort in Assembly с помощью Visual Studio [duplicate]

Приложение может быть выгружено. Разгрузка - это новая функция iOS 11, которая позволяет пользователю или системе iOS удалять приложение, чтобы освободить место без удаления каких-либо его конфигураций или настроек.

Чтобы узнать, было ли приложение отключено, оно отображает значок маленького облака перед его именем.

При открытии загруженного приложения Apple пытается загрузить приложение из App Store. Поскольку это корпоративное приложение, недоступное в App Store, оно не может загрузить его и отображает эту ошибку.

Решение? Ну, именно то, что Apple говорит: «Это приложение не было установлено из App Store и его необходимо переустановить вручную». Загрузите корпоративное приложение снова, откуда оно было размещено, и установите его.

2
задан Joachim Isaksson 23 July 2013 в 07:33
поделиться

2 ответа

Здесь есть одна очевидная проблема:

    cmp ebx, eax
    jg swap

swap:
    mov [aa + edi * 4h], eax
    mov [aa + edi * 4h + 4], ebx
    jmp inner

При этом он переходит на swap, если установлен флаг g, но он падает для замены, если флаг g not , поэтому он выполняет точно такой же код в любом случае. Полагаю, что вы хотите, вероятно, что-то вроде jle inner, чтобы пропустить своп, если два элемента уже в порядке.

Редактирование: снова взглянув на вещи, похоже, у вас есть еще одна довольно очевидная проблема. Давайте рассмотрим что-то вроде C и используем base как адрес, из которого вы загружаете eaxcompare). Вы (концептуально):

eax = *base;
ebx = *(base + 4);

Тогда в swap вы выполните:

*base = eax;
*(base - 4) = ebx;

Это также явно неверно. Чтобы поменять две переменные, вам нужно что-то вроде:

*base = ebx;
*(base + 4) = eax;
0
ответ дан Jerry Coffin 25 August 2018 в 15:09
поделиться

Выяснили, что было не так - заявления печати в середине программы шлепали мою память. Вот рабочий вид. Спасибо за помощь всем!

    .data
          aa DWORD 10 DUP(5, 7, 6, 1, 4, 3, 9, 2, 10, 8)
        count DWORD -1
; DB 8-bits, DW 16-bit, DWORD 32, WORD 16 BYTE 8



    .code                       ; Tell MASM where the code starts

; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

start:                          ; The CODE entry point to the program

    mov esi, count ;loop count

    outer:
        inc esi
        mov edi, count        
        cmp esi, 10       
        je end_loop

    inner: ;this loop represents a full pass on the entire array
        inc edi        
        cmp edi, 9 ;after 9 passes goes to outer loop
        je outer

    compare:
        mov eax, [aa + edi * 4h]
        mov ebx, [aa + edi * 4h + 4] ;want to make this one the higher indexed-one

        ;print chr$(13,10) These print calls were hosing the memory before.
        ;print str$(eax)
        ;print chr$(13, 10)
        ;print str$(ebx)
        ;print chr$(13, 10)

        cmp eax, ebx
        jle inner

    swap:
        mov [aa + edi * 4h], ebx
        mov [aa + edi * 4h + 4], eax
        jmp inner

end_loop:

    ;print out array elements
    sub esi, esi
    mov esi, [aa]
    print str$(esi)
    print chr$(" ")
    sub esi, esi

    mov esi, [aa + 4h]
    print str$(esi)
    print chr$(" ")
    sub esi, esi

    mov esi, [aa + 4h * 2]
    print str$(esi)
    print chr$(" ")
    sub esi, esi

    mov esi, [aa + 4h * 3]
    print str$(esi)
    print chr$(" ")
    sub esi, esi

    mov esi, [aa + 4h * 4]
    print str$(esi)
    print chr$(" ")
    sub esi, esi

    mov esi, [aa + 4h * 5]
    print str$(esi)
    print chr$(" ")
    sub esi, esi

    mov esi, [aa + 4h * 6]
    print str$(esi)
    print chr$(" ")
    sub esi, esi

    mov esi, [aa + 4h * 7]
    print str$(esi)
    print chr$(" ")
    sub esi, esi

    mov esi, [aa + 4h * 8]
    print str$(esi)
    print chr$(" ")
    sub esi, esi

    mov esi, [aa + 4h * 9]
    print str$(esi)
    print chr$(" ")
    sub esi, esi

exit


; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

end start                       ; Tell MASM where the program ends
1
ответ дан Peter Cordes 25 August 2018 в 15:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: