Vladimirr1905
19.10.2021 05:20

найти и исправить ошибку в коде, вообще не понимаю.. ассемблер х86

section .text

global _start

_start:

mov esi,fibo

mov eax, 1

mov ebx, 1

ischo: xor ecx,ECX

add ecx,eax

add ecx,ebx

js a

mov [esi], eax

call outeax

inc esi

inc esi

inc esi

inc esi

mov eax, ebx

mov ebx, ecx

jmp ischo

a: mov [esi], eax

call outeax

inc esi

inc esi

inc esi

inc esi

mov [esi], ebx

mov eax, ebx

call outeax

inc esi

inc esi

inc esi

inc esi

mov [esi], ecx

mov eax,1

mov ebx,0

int 80h

outeax:

;push eax

;mov [tmp],ax

push eax

push ebx

push ecx

push edx

mov ebx, 10

mov edi, stroka

add edi, 19

aga: xor edx, edx

div ebx

push eax

add edx, 30h

mov [edi], di

dec edi

pop eax

cmp eax, 0

jne aga

mov eax,4

mov ebx,1

mov ecx,stroka

mov edx, 21

int 80h

pop edx

pop ecx

pop ebx

pop eax

ret

section .data

tmp dw 0

stroka times 20 db 0

str_len dd 20

fibo times 100 dd 0

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Nika7854
18.10.2022 15:08
// PascalABC.NET 3.1, сборка 1198 от 11.03.2016
begin
  var k:=0;
  var Terminate:boolean;
  repeat
    Terminate:=True;
    var n:=ReadInteger('Введите номер месяца:');
    case n of
    1,3,5,7,8,10,12:Writeln('31 день');
    4,6,9,11:Writeln('30 дней');
    2:Writeln('28 дней в обычном году и 29- в високосном')
    else begin
      Writeln('Вы ошиблись, номер должен быть от 1 до 12');
      Inc(k);
      Terminate:=False
      end
    end
  until Terminate;
  if k>0 then Writeln('Вы ошиблись ',k,' раз(а).')
end.

Тестовое решение:
Введите номер месяца: 18
Вы ошиблись, номер должен быть от 1 до 12
Введите номер месяца: 0
Вы ошиблись, номер должен быть от 1 до 12
Введите номер месяца: 5
31 день
Вы ошиблись 2 раз(а).
0,0(0 оценок)
Ответ:
guskovzahar2011
06.03.2023 02:19
Const n=10; m=5;
var a:array[1..n,1..m+1] of integer;
i,j,k,sp,s:integer;
begin
Randomize;
writeln('  Результаты соревнований');
for i:=1 to n do
 begin
 s:=0;
 for j:=1 to m do
  begin
  a[i,j]:=random(50)+50;
  write(a[i,j]:4);
  s:=s+a[i,j];
  end;
  a[i,m+1]:=s;
  writeln(s:5);
 end;
write('k='); readln(k);
sp:=0;
for i:=1 to n do
 if a[i,m+1]>=k then sp:=sp+1;
writeln('sp=',sp);
end.

Пример:
  Результаты соревнований
  69  52  91  62  65  339
  70  53  96  56  97  372
  78  98  94  61  62  393
  62  86  50  58  95  351
  82  98  53  56  81  370
  75  64  56  85  54  334
  69  99  53  72  97  390
  55  75  66  59  61  316
  99  71  83  75  51  379
  91  73  53  88  79  384
k=350
sp=7
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота