Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
4 / 4 / 2
Регистрация: 25.09.2016
Сообщений: 105
1

Error: invalid instruction operands masm32

18.11.2017, 18:38. Показов 1293. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
ошибку выдает в 58 строке. не понимаю почему.
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
.386
.model flat,STDCALL
option casemap :none  ;case sensitive
 
include E:\masm32\include\windows.inc 
 
include E:\masm32\include\masm32.inc
include E:\masm32\include\gdi32.inc
include E:\masm32\include\user32.inc
include E:\masm32\include\kernel32.inc
include E:\masm32\include\msvcrt.inc 
 
includelib E:\masm32\lib\masm32.lib
includelib E:\masm32\lib\gdi32.lib
includelib E:\masm32\lib\user32.lib
includelib E:\masm32\lib\kernel32.lib
includelib E:\masm32\lib\msvcrt.lib
 
 
tovar STRUC
nom     db  20  dup (?)
kod     db  ?       
kst     db  ?
date    db  10  dup (?)
tovar ends
 
.data
n       equ 5 
base tovar      <"Tovar1", 74, 125, "10.12.2012">, \
                            <"Tovar2", 25, 95, "27.07.1999">, \
                            <"Tovar3", 13, 16, "10.06.1999">, \
                            <"Tovar4", 65, 47, "11.01.2025">, \
                            <"Tovar5", 92, 10, "23.12.2002">
 
swap    tovar   <>
 
nom_len     dw  6
date_len    dw  10 
 
.code
start:
 
xor cx, cx
j2:
    mov cl, n
    dec cl
c0:
    mov bx, cx
    mov al, base[bx].kod 
    cmp al, base[bx-1].kod
    ja j1
    loop c0
    jmp j0
j1:
    push cx
    mov cx, nom_len
    mov edi, offset swap.nom
    mov esi, base[bx].nom
 
    jmp j2
 
    jmp c0
j0:
 
invoke ExitProcess, 0
end start
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.11.2017, 18:38
Ответы с готовыми решениями:

MASM 6.15 Error A2070 - invalid instruction operands
Добрый день! Ассемблер только начал изучать по книжкам. Столкнулся при трансляции программки с...

Ошибка: invalid instruction operands
Здравствуйте! Не могу устранить ошибку : error A2070: invalid instruction operands Подскажите,...

Ошибка A2070: invalid instruction operands
Ребят, помогите пж - не могу понять в чём дело. Выдаёт ошибку А2070. .386 .model flat, stdcall...

Mov ax,byte ptr[ESI] A2070: invalid instruction operands
mov ax,byte ptr A2070: invalid instruction operands Доброго вечера! Не...

5
Модератор
Эксперт по электронике
8476 / 4335 / 1642
Регистрация: 01.02.2015
Сообщений: 13,461
Записей в блоге: 8
18.11.2017, 23:46 2
Наверное, регистр esi - 4 байта, а поле nom - 20 байт. MASM в растерянности.
0
4 / 4 / 2
Регистрация: 25.09.2016
Сообщений: 105
21.11.2017, 19:30  [ТС] 3
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
MASM в растерянности
когда ставлю offset реакция та же)))
0
Модератор
Эксперт по электронике
8476 / 4335 / 1642
Регистрация: 01.02.2015
Сообщений: 13,461
Записей в блоге: 8
21.11.2017, 23:09 4
Я так понимаю, что это обмен двух элементов массива.
Почему бы не обменять их побайтно
Код
esi:=offset A[4]
edi:=offset A[15]
for i:=0 to sizeof(tovar)-1
  temp:=byte ptr [esi]
  byte ptr [esi]:=[edi]
  [edi]:= byte ptr temp
  esi:=esi+1
  edi:=edi+1
end
Добавлено через 29 секунд
Может не offset, а ADDR.
0
4 / 4 / 2
Регистрация: 25.09.2016
Сообщений: 105
23.11.2017, 15:47  [ТС] 5
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
esi:=offset A[4]
edi:=offset A[15]
for i:=0 to sizeof(tovar)-1
temp:=byte ptr [esi]
byte ptr [esi]:=[edi]
[edi]:= byte ptr temp
esi:=esi+1
edi:=edi+1
end
так в masm можно ?? а что за цикл и :=? много не понимаю(((
0
Модератор
Эксперт по электронике
8476 / 4335 / 1642
Регистрация: 01.02.2015
Сообщений: 13,461
Записей в блоге: 8
23.11.2017, 20:20 6
Это псевдокод. На ассемблере долго набирать и не всегда ясна структура.
0
23.11.2017, 20:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.11.2017, 20:20
Помогаю со студенческими работами здесь

Ошибка "invalid instruction operands"
Всем привет! Небольшая проблема. Выбивает ошибку в 21 строке. Не понимаю что там такого...

YASM ошибка error: invalid combination of opcode and operands
написал на YASM программу выводящую на экран то что ты вводишь на клавиатуре use16 org 0x7C00 ...

Error: parser: instruction expected
Здравствуйте! Пишу программу, сортирующую массив. На вход подается число элементов (0&lt;N&lt;10000),...

Как устранить ошибку компиляции "A2022: instruction operands must be the same size"?
.686; Директива определения типа микропроцессора .Model flat, stdcall; задачи линейной модели...

|31|error: invalid operands to binary ^ (have 'float' and
#include &lt;stdio.h&gt; #include &lt;math.h&gt; int count(float xA, float xB, int Step) { int...

Error: invalid operands of types 'float' and 'int' to binary 'operator%'
float n,m,k; cout &lt;&lt; &quot;Kiek vairotojas is sandelio turi parvezti deziu i parduotuve?: &quot;; ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru