Вопросы, помеченные тегом «masm»

MASM - это инструмент Microsoft Macro Assembler для преобразования языка ассемблера в объектный код. Он обрабатывает инструкции x86 и псевдо-инструкции, написанные в «синтаксисе Intel». MASM - это стандартный низкоуровневый язык для всех сред MSDOS и Windows, который в настоящее время поддерживается в 32-битной и 64-битной версиях.
avatar
MohAliBou
30 января 2022 в 01:30
99
1

Вычесть переменную из регистра? ошибка A2022: операнды инструкции должны быть одного размера

.data num1 word 0FEEDh .code main PROC mov ecx, 0E4C7FFFDh ;ecx = 0E4C7FFFD hex sub ecx, num1 ;;;;; error on this line Я хочу иметь возможность вычитать переменную num1 из регистра ecx, но эта попытка дает: ошибка A2022: операнды...
avatar
MathematicsBeginner
7 августа 2021 в 11:12
28
0

Как сделать имя процедуры локальным в файле .lib (сделанном из файла .asm). Я использую визуальную студию 2019

Как уже упоминалось, я использую Visual Studio 2019. Я пытаюсь создать библиотеку Sorting.lib, которая содержит Mergesort. Мой MergeSort имеет две подпроцедуры: Core и Merge. Очевидно, я хочу, чтобы эти два были ЧАСТНЫМИ для других программ (например, main.asm),...
avatar
Jing Wen
6 августа 2021 в 17:33
123
1

Использование 'LENGTHOF' в масме dosbox

Я запускаю masm в среде dosbox. Используя masm.exe по следующей ссылке https://medium.com/@axayjha/getting-started-with-masm-8086-assembly-c625478265d8 Я пытаюсь прочитать длину массива, используя 'LENGTHOF'. Когда я пытаюсь собрать коды, появляется следующее....
avatar
Csaas33
1 августа 2021 в 17:29
79
1

Режимы адресации и источник памяти по сравнению с местом назначения в сборке x86 MASM

Я просмотрел множество тем, касающихся этой темы, и все они запутались. Я не видел наглядного изображения ни для одного из ответов, которые могли бы мне помочь. Я не понимаю разницы между всеми этими утверждениями: mov eax, ebx mov [eax],ebx mov eax, [ebx] Если...
avatar
John Kalane
1 августа 2021 в 15:33
112
1

Почему я должен установить исходный `.asm` файл `Properties > General > Item Type` на `Microsoft Macro Assembler`...?

Почему я должен установить Properties > General > Item Type исходного файла .asm на Microsoft Macro Assembler, хотя я уже выбрал для узла проекта параметр Build dependencies > Build Customization > masm.
avatar
Csaas33
31 июля 2021 в 00:10
52
1

Проверяем, равен ли результат 0 без CMP? Сборка x86 MASM [дубликат]

У меня есть следующий код: or edx,edx (0 Or 0 would equal 0) jz InvalidDivisor Если я изменю код на этот: AND edx,edx (0 and 0 would equal 0) jz InvalidDivisor Разве оба способа не будут работать для проверки того, что произведение равно 0?
avatar
Csaas33
30 июля 2021 в 05:46
42
0

Запутался, что должно быть перед JZ в сборке masm x86 [дубликат]

Итак, в сборке x86 я вижу, что если вы сделаете or ebx,ebx jz InvalidDivisor cmp ebx,0 jz InvalidDivisor Таким образом, JZ работает, если вы сравниваете или выполняете математические операции перед вызовом JZ. Что произойдет, если вы сделаете следующее: mov ebx,0 jz...
avatar
mattstack
29 июля 2021 в 15:08
58
1

Сигнал прерывания передается RTC только один раз.

У меня небольшая проблема с RTC+CMOS (Часы реального времени), точнее Motorola MC146818A. Задача, выполняемая программой, состоит в том, чтобы отображать букву «А» через равные промежутки времени, равные 1с. значит биты регистра А и регистра Б я выставил правильно,...
avatar
Matt Bettcher
26 июля 2021 в 17:40
64
1

Директива %line из эквивалента NASM для MASM

В основном я пишу простой C-подобный язык, который выводит прямой ассемблер синтаксиса NASM. Я могу отладить это в VS, но это немного больно. Использование MASM немного упрощает отладку, но в NASM есть директива %line, которую я мог бы использовать для привязки моего...
avatar
Minhas Ali
25 июля 2021 в 02:30
395
1

раздел .data в сборке x86

Я пытаюсь выучить язык ассемблера и не могу понять концепцию объявления глобальных переменных в разделе .data. Когда вы объявляете переменную в разделе .data, ассемблер/компоновщик сопоставляет ее с ячейкой памяти. Но как он узнает о свободной памяти, доступной при...
avatar
user6635509
20 июля 2021 в 13:52
800
1

Недопустимый символ в файле

Я использую бесплатную версию Visual Studio 2019. Я создал пустой проект, а затем добавил зависимости для .masm(.targets, .props). Однако я получаю сообщение об ошибке и не уверен, что это моя установка Visual Studio или что-то еще. Я изучаю ассемблер, и мне нужно...
avatar
roger tunnicliffe
20 июля 2021 в 06:46
53
0

MASM-эквивалент NASM

С помощью NASM я могу написать следующее:- %imacro @INSERTARRAY 2 ALIGN 8 %1 resq %2 %1_len equ $-%1 %endmacro [section .bss] @INSERTARRAY _RandomNos,1000000 %imacro @ARRAYS 2 mov r8,%1 mov r9,%2_len/8-1 . . %endmacro [section...
avatar
roger tunnicliffe
19 июля 2021 в 03:34
34
0

Ошибки памяти MASM/LINK или LIB

У меня есть приложение, изначально разработанное с использованием NASM под операционной системой Linux. Я перенес это (все еще используя NASM) в операционную систему Windows. Поскольку систему было сложно отлаживать, я 9/10 преобразовываю код в синтаксис MASM и...
avatar
Himu21
19 июля 2021 в 03:21
96
1

Цикл для отображения сообщения с простым вопросом y/n для повторения цикла или завершения программы

Моя цель — отобразить сообщение 10 раз, а затем попросить пользователя продолжить или нет. Если да, вернитесь, чтобы снова выполнить вышеуказанный цикл. Если нет, выйдите из программы. Первая часть моего кода работает нормально; он отображает сообщение «До свидания» 10...
avatar
hieveryone
7 июля 2021 в 03:24
75
1

2D-массивы на ассемблере

Я пытаюсь преобразовать свой код C++ в код MASM. У меня проблемы с двумерными массивами. Пожалуйста, помогите мне! Задача: найти самые длинные общие подстроки Мой код C++: #include<stdio.h> #include<string.h> char s[20],t[20]; int b[20][20]; int n,m; void...
avatar
CompSciStudent
6 июля 2021 в 00:42
371
1

Добавление байта из памяти в регистр AX

В настоящее время я пытаюсь выяснить, как добавить первый байт в памяти, на который указывает указательный регистр SI, к текущему содержимому регистра AX. Итак, если SI содержит некоторый адрес, а значения в памяти по этому адресу: 00 и 01, я хочу добавить только 00 в...
avatar
CompSciStudent
30 июня 2021 в 02:43
81
0

Сборка Intel 8086 — инструкция косвенной адресации и сравнения (MASM) [дубликат]

Я пытаюсь сравнить значение в сегменте данных (элемент массива) со значением символа ASCII для пробела (20h, хранится в регистре) с помощью инструкции cmp в MASM. Инструкция, которую я пытаюсь использовать: cmp [ds:bp + si + 1],cx Моя цель состоит в том, чтобы ds:bp...
avatar
Leif Messinger LOAF
29 июня 2021 в 21:17
67
1

Директива end main прерывает MASM Hello World, нормально работает с end?

Я отлаживал свою программу hello world и разочаровался, поэтому я просто скопировал и вставил пример с этого веб-сайта в Visual Studio и запустил его. Это сработало. Затем я потратил дополнительные тридцать минут, пытаясь выяснить, какая ошибка сломала его....
avatar
Itamar Ivri
20 июня 2021 в 23:56
101
2

Изменение глобальной переменной внутри метки\цикла в сборке

Я попытался запустить этот код на ассемблере: .code main PROC N=8 mov eax, 0 mov eax, N call writeDec call crlf mov ecx, 2 loop1: N=N-2 mov eax,N call writeDec call crlf loop loop1 mov eax, N call writedec Я заметил, что...
avatar
shivam
16 июня 2021 в 11:46
92
1

Как смещение массива стало обозначать начальный адрес массива

рассмотрим код сборки - mov edi, offset newarray Согласно тому, что я прочитал, это поместит адрес newarray в реестр edi. Что я не понимаю, так это термин offset как английское значение этого термина подходит здесь.