С Новым годом! Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
4 / 4 / 2
Регистрация: 03.11.2011
Сообщений: 103

Перевести на асемблер кусок кода

14.03.2012, 22:52. Показов 1279. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
while ( val1 <= val2 )
{
Printf (“итерация: %d”, ++val1-val1)
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.03.2012, 22:52
Ответы с готовыми решениями:

перевести прогу на асемблер
Задана строка из смеси русских строчных и заглавных букв. Преобразовать её в строку из тех же заглавных букв. Составить программу для...

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

Поясните представленный кусок кода
Здравствуйте, появилась пара вопросов в процессе изучения: 1) читаю документы по асемблеру, в разделе &quot;Управление клавиатурой с...

3
15 / 22 / 6
Регистрация: 13.10.2011
Сообщений: 167
15.03.2012, 00:42
1)Ну во-первых,после printf должна идти ;
2)Вы понимаете что прога у вас будет зациклена,ибо выражение ++val1-val1 Всегда равно 0.Возможно вы здесь ошиблись.
3)Если вы не ошиблись вот код на асме целой проги
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
.386
    .model flat, stdcall
    option casemap :none
    include \masm32\include\windows.inc
    include \masm32\include\user32.inc 
    include \masm32\include\masm32.inc
    include \masm32\include\kernel32.inc
    include \masm32\macros\macros.asm
    includelib \masm32\lib\user32.lib 
    includelib \masm32\lib\masm32.lib
    includelib \masm32\lib\kernel32.lib
    Bsize equ 12
    .data
    val1 dd 5
    val2 dd 5
    stdout dd ?
    cWritten dd ?
    buf db Bsize dup(?)
    ifmt db "%d",0
   msg db "Iteration=",0
    .code
    start:
    invoke GetStdHandle,STD_OUTPUT_HANDLE
    mov stdout,eax
    mov edx,val2
.While(val1<=edx)
mov ebx,val1
inc ebx
inc val1
sub ebx,val1
mov val1,0
invoke wsprintf,ADDR buf,ADDR ifmt,ebx
invoke WriteConsoleA,stdout,ADDR msg,SIZEOF msg,ADDR cWritten,NULL
invoke WriteConsoleA,stdout,ADDR buf,Bsize,ADDR cWritten,NULL
.endw
invoke Sleep,9000
invoke ExitProcess,0
end start
4)Код конкретно вашего куска.Invoke скорее всего вам придётся на что-то заменить cout,printf(но это я так думаю,а может и так прокатит при нужных заголовках .h)
Assembler
1
2
3
4
5
6
7
8
9
10
11
 mov edx,val2
.While(val1<=edx)
mov ebx,val1
inc ebx
inc val1
sub ebx,val1
mov val1,0
invoke wsprintf,ADDR buf,ADDR ifmt,ebx
invoke WriteConsoleA,stdout,ADDR msg,SIZEOF msg,ADDR cWritten,NULL
invoke WriteConsoleA,stdout,ADDR buf,Bsize,ADDR cWritten,NULL
.endw
5)Можно сделать код ещё проще,так как ваше выражение в printf=0
Assembler
1
2
3
4
5
6
7
 mov edx,val2
.While(val1<=edx)
mov val1,0
invoke wsprintf,ADDR buf,ADDR ifmt,val1
invoke WriteConsoleA,stdout,ADDR msg,SIZEOF msg,ADDR cWritten,NULL
invoke WriteConsoleA,stdout,ADDR buf,Bsize,ADDR cWritten,NULL
.endw
Добавлено через 15 минут
6) Если вам нужно вывести число не через invok-и ,то тогда смотрите тему Ввод и вывод чисел в различных системах счисления
1
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
15.03.2012, 01:19
Typoii, дык, может, каков вопрос...
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
; while ( val1 <= val2 )
L$1:
    mov         eax,dword ptr -8[ebp] 
    cmp         eax,dword ptr -4[ebp] 
    jg          L$4 
 
; {
; printf("итерация: %d", ++val1-val1);
L$2:
    inc         dword ptr -8[ebp] 
    mov         eax,dword ptr -8[ebp] 
    sub         eax,dword ptr -8[ebp] 
    push        eax 
    mov         eax,offset FLAT:L$6 
    push        eax 
    call        near ptr FLAT:printf 
    add         esp,8 
 
; };
L$3:
    jmp         L$1 
 
 L$4:
_TEXT       ENDS
CONST       SEGMENT DWORD PUBLIC USE32 'DATA'
L$6:
    DB  'итерация: %d', 0
CONST       ENDS
1
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
16.03.2012, 15:47
Цитата Сообщение от igor913 Посмотреть сообщение
перевести в асемблер кусок кода
Скомпилить и дисассэмблировать потом что мешает?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.03.2012, 15:47
Помогаю со студенческими работами здесь

Перевести кусок программы из C в Assembler
Здравствуйте ! Есть программа, в ней нужно одну часть перевести из языка C в Assembler. Не могу ни как связать массивы. #include...

Перевести кусок кода из С++.NET
ref struct Procedure { int type; array&lt;object^&gt;^ parameters; int target; int extra; }; ref struct Condition {

Перевести маленький кусок кода с VB на C#
Public Class Job Public arrivalT As Integer Public burstT As Integer Public waitingT As Integer Public...

Перевести небольшой кусок кода из C# в Java
Help)) C# не знаю for (int i = 0; i &lt; nums.Length; ++i) nums = i; IEnumerable&lt;int&gt; permutations; for (int i = 0; i...

Подскажите как перевести кусок кода с Delphi на C++
В Дельфи так: Жирным я выделил интересующий меня фрагмент. Вот как он объявлен в файле .hpp (то есть уже в билдере) typedef...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru