Size: a a a

Ассемблер

2019 December 19

楽園松本 in Ассемблер
Есть большой шанс, что суммируя 10 элементов, ты перегрузишь al.
источник

Н

Никита in Ассемблер
это учебная а не боевая задача, если не сказали то не надо
источник

S

SanaiEinzelganger. in Ассемблер
ребят надо вывести в консоли вот так Hello from Assembler!
ello from Assembler
 llo from Assemble
  lo from Assembl
   o from Assemb
     from Assem
     from Asse
      rom Ass
       om As
        m A
         
        m A
       om As
      rom Ass
     from Asse
     from Assem
   o from Assemb
  lo from Assembl
 llo from Assemble
ello from Assembler
Hello from Assembler!
источник

S

SanaiEinzelganger. in Ассемблер
как мне пробелы слево сделать?
источник

G

Gymmasssorla in Ассемблер
SanaiEinzelganger.
ребят надо вывести в консоли вот так Hello from Assembler!
ello from Assembler
 llo from Assemble
  lo from Assembl
   o from Assemb
     from Assem
     from Asse
      rom Ass
       om As
        m A
         
        m A
       om As
      rom Ass
     from Asse
     from Assem
   o from Assemb
  lo from Assembl
 llo from Assemble
ello from Assembler
Hello from Assembler!
Уменьшай кол-во пробелов при каждой итерации на 2, а после середины увеличивай
источник

S

SanaiEinzelganger. in Ассемблер
спсибо
источник

Н

Никита in Ассемблер
По циклу выводи n пробелов или выводи строку из пробелов с n-го символа
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮ in Ассемблер
Никита
это учебная а не боевая задача, если не сказали то не надо
сказать могли неявно, говоря о том что максимальное значение байта 255
источник

ST

Saenro T in Ассемблер
.Ru
Не понимаю смысл
Mov cx, 10
По логике 10 элементов, но cx нигде не юзается
mov BX, mas
add AL, [BX]
— норм?
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮ in Ассемблер
add Al, [bx+cx]
без Inc bx
источник

ST

Saenro T in Ассемблер
Ооо, это уже 👌
источник

ST

Saenro T in Ассемблер
push CS
pop DS
— тоже лишнее
источник

ST

Saenro T in Ассемблер
Можно бы было add AX, CS:[BX][CX]
Но CX нельзя в таком контексте использовать.
источник

ST

Saenro T in Ассемблер
AX, CS:[BX][SI]
AX, CS:[BX][DI]
AX, CS:[BP][SI]
AX, CS:[BP][DI]
Пожалуй и всё, остальные регистры тут не прокатят.
источник

S

SanaiEinzelganger. in Ассемблер
да это я все понимаю, но у меня код дан и его надо модифицировать, лупом не сделать потому как cx занят
источник

S

SanaiEinzelganger. in Ассемблер
/**
* greetings.S -- выводит приветственную строку несколько раз
*
* Copyright (c) 2014 Petrozavodsk State University
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*/


/* Секция данных */

.data

   /* Размещаем нуль-терминальную строку в области глобальных
      инициализированных данных, метка greeting адресует строку */
   greeting: .asciz "Hello from Assembler!\n"
   


/* Секция команд процессора */

.text

   /* Метка _start адресует точку входа - первую инструкцию в секции
      команд процессора, которая будет исполнена при загрузке программы */
     
   .global _start
   _start:                          

   /* Многократно выводим строку на экран */
   
   movl $22, %esi          # фиксируем счетчик повторений
 
 next:
 
   movl $4, %eax           # помещаем номер системного вызова write
                           # в регистр eax                            
   movl $1, %ebx           # помещаем номер дескриптора файла в регистр ebx,
                           # единица соответствует стандартному выводу, stdout
   leal greeting, %ecx     # помещаем адрес выводимой строки в регистр ecx
                           # (объясните, почему не movl greeting, %ecx
   movl %esi, %edx          # помещаем в регистр edx количество байт, начиная с
                           # заданного адреса, которые нужно отправить в файл
   int  $0x80              # обращаемся к обработчику системных вызовов
   
   movl $4, %eax           # помещаем номер системного вызова write
                           # в регистр eax                            
   movl $1, %ebx           # помещаем номер дескриптора файла в регистр ebx,
                           # единица соответствует стандартному выводу, stdout
   leal greeting+21, %ecx     # помещаем адрес выводимой строки в регистр ecx
                           # (объясните, почему не movl greeting, %ecx
   movl $1, %edx          # помещаем в регистр edx количество байт, начиная с
                           # заданного адреса, которые нужно отправить в файл
   int  $0x80

   subl $1, %esi           # уменьшаем счетчик
   cmpl $0, %esi           # если требуемое число повторений достигнуто,
   je done                 # переходим к завершению программы
   jmp next                # иначе повторяем еще раз

 done:                            

   /* Завершаем выполнение программы с помощью системного вызова _exit */
   
   movl $1, %eax           # помещаем номер системного вызова _exit
                           # в регистр eax
   movl $0, %ebx           # помещаем код возврата в регистр ebx,
                           # нулевой код соответствует успешному завершению
   int  $0x80              # обращаемся к ОС

.end                        # последняя строка исходного текста
источник

S

SanaiEinzelganger. in Ассемблер
тут я сдела шоб выводило так:
источник

S

SanaiEinzelganger. in Ассемблер
Hello from Assembler!
Hello from Assembler
Hello from Assemble
Hello from Assembl
Hello from Assemb
Hello from Assem
Hello from Asse
Hello from Ass
Hello from As
Hello from A
Hello from
Hello fro
Hello fr
Hello f
Hello
Hello
Hell
Hel
He
H
источник

S

SanaiEinzelganger. in Ассемблер
и теперь надо этот же код модифицировать шоб песочными часами выводило
источник

S

SanaiEinzelganger. in Ассемблер
коменты не все верны, тк я копировал некоторые куски  и изменял без комментов
источник