Форум программистов, компьютерный форум, киберфорум
Assembler: Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 13.12.2021
Сообщений: 12
NASM

Ошибка при выводе числа через printf

27.12.2021, 21:47. Показов 2332. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, подскажите, пожалуйста, почему не работает вывод числа в конце

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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
extern printf
global main
section .data
 
a dq 0xDEADBEEF
x dq 0
y dq 0
m dq 1
mm dq 1
sys_exit      equ   60
c dd 0, 0, 0, 0
fmt:          db    "a0 = %ld", 10, 0
fmt1:         db    "a1 = %ld", 10, 0
l dq 0
j dq 0
 
section .bss
 
section .text
 
main:
        mov  rbp,  rsp
        mov  ecx,  3
LOOP1:  mov [l], ecx
        mov [x], word 0
        mov [y], word 0
        mov [m], word 1
        mov ecx, 3
LOOPX:  mov rdx, [a]
        mov rax, [mm]
        and rdx, rax
        cmp rdx, [mm]
        jne ELSEX
        mov rax, [m]
        mov rdx, [x]
        add rdx, rax
        mov [x], rdx
ELSEX:  mov rax, [m]
        mov rbx, 2
        mul rbx
        mov [m], rax
        mov rax, [mm]
        mul rbx
        mov [mm], rax
        dec ecx
        jns LOOPX
        mov rax, [x]
        
        mov ecx, 3
        mov [m], word 1
        mov rax, [m]
LOOPY:  mov rdx, [a]
        mov rax, [mm]
        and rdx, rax
        cmp rdx, [mm]
        jne ELSEY
        mov rax, [m]
        mov rdx, [y]
        add rdx, rax
        mov [y], rdx
ELSEY:  mov rax, [m]
        mov rbx, 2
        mul rbx
        mov [m], rax
        mov rax, [mm]
        mul rbx
        mov [mm], rax
        dec ecx
        jns LOOPY
        mov rax, [y]
    
        mov ecx, [l]
        mov rsi, rcx
        mov rax, [x]
        mov rbx, [y]
        sbb rax, rbx
        mov [c + esi*8], rax
        mov rbx, [c + esi*8]
        
        dec ecx
        jns LOOP1
        
        mov [m], word 32
        mov ecx, 3
     
LOOP2:  mov [m], word 32
        mov [l], ecx
        mov ecx, 2      
LOOP3:  mov [j], ecx
        mov esi, 2
        sub esi, ecx
        mov rax, [c + esi*8]
        inc esi
        mov rbx, [c + esi*8]   
        cmp rax, rbx
        jng ELSE2
        dec esi
        mov rdx, rbx
        mov rbx, rax     
        mov rax, rdx
        mov [c + esi*8], rax 
        inc esi
        mov [c + esi*8], rbx 
        
        mov ecx, 7
LOOPC:  
 
        mov rdx, rcx  
        mov rax, [m]
        dec rax
        mov rcx, rax
        mov rbx, 1
        shl rbx, cl    
        mov rcx, rdx     
        mov rdx, [a]
        and rdx, rbx
        jz JZ1              
                          
        mov rdx, rcx
        mov rax, [m]
        sub rax, 9
        mov rcx, rax
        mov rbx, 1
        shl rbx, cl
        mov rcx, rdx
        mov rdx, [a]
        and rdx, rbx
        jz JZZ
        jnz ALL1
        
  JZ1:  mov rdx, rcx
        mov rax, [m]
        sub rax, 9
        mov rcx, rax
        mov rbx, 1
        shl rbx, cl
        mov rcx, rdx
        mov rdx, [a]
        and rdx, rbx
        jnz JZZ
        jz ALL1
  
  
  
  JZZ:       ;"глобальная"
        mov rdx, rcx     ; 1 << (m - 1)
        mov rax, [m]
        sub rax, 1
        mov rcx, rax
        mov rbx, 1
        shl rbx, cl
        mov rcx, rdx
        mov rdx, [a]
        xor rdx, rbx     ; a ^= 1 << (m - 1)
        mov [a], rdx
        
        mov rdx, rcx     ; 1 << (m - 9)
        mov rax, [m]
        sub rax, 9
        mov rcx, rax
        mov rbx, 1
        shl rbx, cl
        mov rcx, rdx
        mov rdx, [a]
        xor rdx, rbx     ; a ^= 1 << (m - 9)
        mov [a], rdx
        jmp ALL1
 
        
 ALL1:  mov rax, [m]
        dec rax
        mov [m], rax
        dec ecx
        jns LOOPC
        
        jmp ALL
        
ELSE2:  mov rax, [m]
        sub rax, 8
        mov [m], rax
        jmp ALL
        
ALL:    
        mov ecx, [j]
        dec ecx
        jns LOOP3
        mov ecx, [l]
        dec ecx           
        jns LOOP2
        
       
        push   rbp
        mov    rax,    [a]      
       add    rax,    0     
        mov    rdi,    fmt1     
        mov    rsi,    [a]         
        mov    rdx,    rax         
        mov    rax,    0        
        call   printf       
 
        pop    rbp      
 
        mov    rax,    0
      
         
        mov    rax,    sys_exit
        mov    rdi,    42
        xor    rdi,    rdi
        syscall
       
    ret
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.12.2021, 21:47
Ответы с готовыми решениями:

Русский язык в ввода-выводе через printf-scanf
Здравствуйте! Помогите пожалуйста... Мне нужно к программе подключить возможность работать с русским языком, однако, мне нужно, что бы...

Различия в выводе адреса метода класса через printf() и cout
Добрый день. Объясните пожалуйста, почему когда я пытаюсь вывести адрес метода класса с помощью функции printf(), он выводится в консоль в...

Глюк с printf при выводе %s
В visual studio 2015 при выполнении указанной ниже команды, в консоли происходит перевод строки, хотя его не должно быть. ...

1
53 / 9 / 2
Регистрация: 08.02.2020
Сообщений: 62
17.06.2025, 09:50
у меня выводит. я только mov rdi, fmt1 на lea rdi, [fmt1] поменял.
Просто mov почему, то в rdi помещает адрес не соответствующий строке формата.
Если в секцию text поместить формат то и через mov работает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.06.2025, 09:50
Помогаю со студенческими работами здесь

Printf лжет при выводе чисел с плавающей точкой?
void doubleToString(double v, char * str){ if(v &lt; 0) { *str = '-'; v = -v; } int number = static_cast&lt;int&gt;(v); double...

Ошибка при выводе данных из БД через LINQtoSQL
Подскажите пожалуйста почему не работает, делал всё как в примерах, но не получается. Название вроде везде правильные, скрины таблицы...

Ошибка при выводе в dataGridView через SQL запрос
Добрый день! При создании формы компонент заполняется нормально, но при нажатии кнопки получаю ошибку &quot;An unhandled exception of...

Альтернативы printf() при выводе в консоль константных строк. Что если использовать system() ?
Задумался об альтернативных способа вывода в консоль текстовых сообщений. В одном из учебников Deitel по си в разделе безопасного...

Ошибка при выводе числа (число выходит за пределы типов поэтому подано как массив)
#include &lt;bits/stdc++.h&gt; using namespace std; const int nmax=252; int len_long(int a) { int i=0; while (a==0) i++; ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru