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

Фикс ошибки implicit DEFAULT ABS is deprecated [-w+implicit-abs-deprecated]

09.11.2025, 12:44. Показов 778. Ответов 1
Метки nasm (Все метки)

Студворк — интернет-сервис помощи студентам
Проблема: не знаю, как исправить ошибку 59: warning: implicit DEFAULT ABS is deprecated [-w+implicit-abs-deprecated] при компиляции. 64-бит, window 11/ nasm/ команды при компиляции nasm -f win64 32.asm -o 32.o

Само задание: Для задания со строками – под строкой подразумеваем последовательность символов, которые образуют слова и разделяющего знака – пробела. Слово - последовательность символов, ограниченная знаком пробела. . Пользователь вводит строку, состоящую из слов, разделенных символом пробела, удалить из строки первое слово, вывести строку на экран.
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
section .data
    input_prompt   db "Введите строку: ", 0
    output_prompt  db "Результат: ", 0
    format         db "%255[^\n]", 0  ; Читаем всю строку до перевода строки
    newline        db 13, 10, 0
    empty_string   db 0
 
section .bss
    input_buffer   resb 256
    output_buffer  resb 256
 
section .text
    extern printf, scanf
    global main
 
main:
    push rbp
    mov rbp, rsp
    sub rsp, 32
    
    ; Вывод приглашения
    mov rcx, input_prompt
    call printf
    
    ; Ввод строки с помощью scanf
    mov rcx, format
    mov rdx, input_buffer
    call scanf
    
    ; Поиск первого пробела
    mov rsi, input_buffer
    mov rdi, output_buffer
    
find_first_space:
    mov al, [rsi]
    test al, al
    jz no_space_found
    
    cmp al, ' '
    je space_found
    
    inc rsi
    jmp find_first_space
 
space_found:
    inc rsi  ; Пропускаем пробел
    
copy_remaining:
    mov al, [rsi]
    mov [rdi], al
    test al, al
    jz display_result
    
    inc rsi
    inc rdi
    jmp copy_remaining
 
no_space_found:
    mov byte [output_buffer], 0
 
display_result:
    ; Вывод результата
    mov rcx, output_prompt
    call printf
    
    mov rcx, output_buffer
    call printf
    
    ; Перевод строки
    mov rcx, newline
    call printf
    
    add rsp, 32
    pop rbp
    xor rax, rax
    ret
Вложения
Тип файла: zip Новая папка.zip (1,009 байт, 4 просмотров)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.11.2025, 12:44
Ответы с готовыми решениями:

Найти ошибки в данной программе (известно что есть только 2 ошибки)
У меня в модуле с програмирования задание: Найти ошибки в данной программе (известно что есть...

ошибки в готовом коде(ошибки указаны)
Ввести с клавиатуры строку (кол-во символов не больше 10). И определить ее длину c использованием...

Ошибка с вызовом функции WinApi GetVersionExA: Ошибка A2114 Несоответствие типа аргумента INVOKE: аргумент: 1
Мне нужно вызвать функцию GetVersionExA из программы, написанной на masm. он принимает единственный...

1
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8644 / 4479 / 1669
Регистрация: 01.02.2015
Сообщений: 13,883
Записей в блоге: 11
09.11.2025, 19:22
Лучший ответ Сообщение было отмечено SOFA789 как решение

Решение

Assembler
59
    mov byte [output_buffer], 0
59: warning: implicit DEFAULT ABS is deprecated [-w+implicit-abs-deprecated]
Слово "warning" говорит о том, что это не ошибка, а предупреждение и итоговый объектный файл "32.o" получен.

Зайдите на страничку nasm
https://nasm.us
оттуда перейдите на страничку загрузки и в папке \doc скачайте документацию к nasm - "nasmdoc.pdf". В этом файле сможете найти многие ответы на вопросы. В том числе и о причине предупреждения
implicit-abs-deprecated: implicit DEFAULT ABS is deprecated
Warns that in a future version of NASM, the 64-bit default addressing form is likely to change
from DEFAULT ABS to DEFAULT REL. If absolute addressing is indeed intended, it is strongly
recommended to specify DEFAULT ABS explicitly.
The implicit DEFAULT ABS in 64-bit mode is deprecated and may be changed to REL in the future.
See section 8.2. A warning is now emitted for this condition.
Т.е. предлагается перейти от "абсолютной" адресации переменной (byte [output_buffer]) к относительной (наверное, предполагается byte [REL output_buffer]).

Я давно уже не работал с ассемблером, и ещё дольше именно с nasm - успел подзабыть синтаксис. Поэтому правильное исправление сейчас не подскажу.

Смысл предупреждения - для современных процессоров и операционных систем предлагается не абсолютная адресация, а относительная - относительно регистра адреса команды RIP (он же недавно был меньшей разрядности и именовался IP), который указывая на выполняемую инструкцию, постоянно изменяется.

Пока можете игнорировать предупреждение.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.11.2025, 19:22
Помогаю со студенческими работами здесь

Ошибка "Ошибка сегментирования"
Мне необходимо вывести число в двоичном виде.Нашёл кусочек кода на этом форуме,но при компиляции...

Ошибки "Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead"
Добрый день! Купил сайт, перенёс на свой сервер и тут ошибки повалились) Подскажите, что с этим...

Ошибка: "Implicit declaration of function 'abs' is invalid in C99"
#include <stdio.h> #include <math.h> main() { int x,y,c; printf("Input x y :"); ...

Deprecated: Assigning the return value of new by reference is deprecated in Z:\home\
Deprecated: Assigning the return value of new by reference is deprecated in Z:\home\ Как...

Deprecated: Function ereg() is deprecated
Снёс ХП и поставил 7-у и поставил сразу денвер ... и хотел дописать свой сайт на локалке но тут вот...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru