Приложение может быть выгружено. Разгрузка - это новая функция iOS 11, которая позволяет пользователю или системе iOS удалять приложение, чтобы освободить место без удаления каких-либо его конфигураций или настроек.
Чтобы узнать, было ли приложение отключено, оно отображает значок маленького облака перед его именем.
При открытии загруженного приложения Apple пытается загрузить приложение из App Store. Поскольку это корпоративное приложение, недоступное в App Store, оно не может загрузить его и отображает эту ошибку.
Решение? Ну, именно то, что Apple говорит: «Это приложение не было установлено из App Store и его необходимо переустановить вручную». Загрузите корпоративное приложение снова, откуда оно было размещено, и установите его.
Здесь есть одна очевидная проблема:
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
как адрес, из которого вы загружаете eax
(в compare
). Вы (концептуально):
eax = *base;
ebx = *(base + 4);
Тогда в swap
вы выполните:
*base = eax;
*(base - 4) = ebx;
Это также явно неверно. Чтобы поменять две переменные, вам нужно что-то вроде:
*base = ebx;
*(base + 4) = eax;
Выяснили, что было не так - заявления печати в середине программы шлепали мою память. Вот рабочий вид. Спасибо за помощь всем!
.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