Вопросы, помеченные тегом «masm»
MASM - это инструмент Microsoft Macro Assembler для преобразования языка ассемблера в объектный код. Он обрабатывает инструкции x86 и псевдо-инструкции, написанные в «синтаксисе Intel». MASM - это стандартный низкоуровневый язык для всех сред MSDOS и Windows, который в настоящее время поддерживается в 32-битной и 64-битной версиях.
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: операнды...
7 августа 2021 в 11:12
28
0
Как сделать имя процедуры локальным в файле .lib (сделанном из файла .asm). Я использую визуальную студию 2019
Как уже упоминалось, я использую Visual Studio 2019. Я пытаюсь создать библиотеку Sorting.lib, которая содержит Mergesort. Мой MergeSort имеет две подпроцедуры: Core и Merge. Очевидно, я хочу, чтобы эти два были ЧАСТНЫМИ для других программ (например, main.asm),...
6 августа 2021 в 17:33
123
1
Использование 'LENGTHOF' в масме dosbox
Я запускаю masm в среде dosbox.
Используя masm.exe по следующей ссылке
https://medium.com/@axayjha/getting-started-with-masm-8086-assembly-c625478265d8
Я пытаюсь прочитать длину массива, используя 'LENGTHOF'.
Когда я пытаюсь собрать коды, появляется следующее....
1 августа 2021 в 17:29
79
1
Режимы адресации и источник памяти по сравнению с местом назначения в сборке x86 MASM
Я просмотрел множество тем, касающихся этой темы, и все они запутались. Я не видел наглядного изображения ни для одного из ответов, которые могли бы мне помочь.
Я не понимаю разницы между всеми этими утверждениями:
mov eax, ebx
mov [eax],ebx
mov eax, [ebx]
Если...
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.
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?
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...
29 июля 2021 в 15:08
58
1
Сигнал прерывания передается RTC только один раз.
У меня небольшая проблема с RTC+CMOS (Часы реального времени), точнее Motorola MC146818A.
Задача, выполняемая программой, состоит в том, чтобы отображать букву «А» через равные промежутки времени, равные 1с. значит биты регистра А и регистра Б я выставил правильно,...
26 июля 2021 в 17:40
64
1
Директива %line из эквивалента NASM для MASM
В основном я пишу простой C-подобный язык, который выводит прямой ассемблер синтаксиса NASM. Я могу отладить это в VS, но это немного больно. Использование MASM немного упрощает отладку, но в NASM есть директива %line, которую я мог бы использовать для привязки моего...
25 июля 2021 в 02:30
395
1
раздел .data в сборке x86
Я пытаюсь выучить язык ассемблера и не могу понять концепцию объявления глобальных переменных в разделе .data. Когда вы объявляете переменную в разделе .data, ассемблер/компоновщик сопоставляет ее с ячейкой памяти. Но как он узнает о свободной памяти, доступной при...
20 июля 2021 в 13:52
800
1
Недопустимый символ в файле
Я использую бесплатную версию Visual Studio 2019. Я создал пустой проект, а затем добавил зависимости для .masm(.targets, .props). Однако я получаю сообщение об ошибке и не уверен, что это моя установка Visual Studio или что-то еще.
Я изучаю ассемблер, и мне нужно...
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...
19 июля 2021 в 03:34
34
0
Ошибки памяти MASM/LINK или LIB
У меня есть приложение, изначально разработанное с использованием NASM под операционной системой Linux. Я перенес это (все еще используя NASM) в операционную систему Windows. Поскольку систему было сложно отлаживать, я 9/10 преобразовываю код в синтаксис MASM и...
19 июля 2021 в 03:21
96
1
Цикл для отображения сообщения с простым вопросом y/n для повторения цикла или завершения программы
Моя цель — отобразить сообщение 10 раз, а затем попросить пользователя продолжить или нет. Если да, вернитесь, чтобы снова выполнить вышеуказанный цикл. Если нет, выйдите из программы.
Первая часть моего кода работает нормально; он отображает сообщение «До свидания» 10...
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...
6 июля 2021 в 00:42
371
1
Добавление байта из памяти в регистр AX
В настоящее время я пытаюсь выяснить, как добавить первый байт в памяти, на который указывает указательный регистр SI, к текущему содержимому регистра AX.
Итак, если SI содержит некоторый адрес, а значения в памяти по этому адресу: 00 и 01, я хочу добавить только 00 в...
30 июня 2021 в 02:43
81
0
Сборка Intel 8086 — инструкция косвенной адресации и сравнения (MASM) [дубликат]
Я пытаюсь сравнить значение в сегменте данных (элемент массива) со значением символа ASCII для пробела (20h, хранится в регистре) с помощью инструкции cmp в MASM.
Инструкция, которую я пытаюсь использовать:
cmp [ds:bp + si + 1],cx
Моя цель состоит в том, чтобы ds:bp...
29 июня 2021 в 21:17
67
1
Директива end main прерывает MASM Hello World, нормально работает с end?
Я отлаживал свою программу hello world и разочаровался, поэтому я просто скопировал и вставил пример с этого веб-сайта в Visual Studio и запустил его.
Это сработало. Затем я потратил дополнительные тридцать минут, пытаясь выяснить, какая ошибка сломала его....
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
Я заметил, что...
16 июня 2021 в 11:46
92
1
Как смещение массива стало обозначать начальный адрес массива
рассмотрим код сборки - mov edi, offset newarray
Согласно тому, что я прочитал, это поместит адрес newarray в реестр edi.
Что я не понимаю, так это термин offset как английское значение этого термина
подходит здесь.