Форум программистов, компьютерный форум, киберфорум
Наши страницы

Assembler, MASM, TASM

Войти
Регистрация
Восстановить пароль
 
RocBoy-D
32 / 31 / 7
Регистрация: 10.03.2012
Сообщений: 362
#1

Директива IRPC - Assembler

10.05.2013, 22:05. Просмотров 1068. Ответов 7
Метки нет (Все метки)

Здравствуйте! Необходимо обработать строку символов с помощью макродирективы IRPC, но она интерпретирует строку как идентификатор:
Assembler
1
2
3
4
5
ASCII_IRPC   macro   string
        irpc  char, 'ABCDEF' 
    ...............
    endm
endm
Ошибка: *Warning* bcd.asm(76) IRPC(1) Missing end quote
**Error** bcd.asm(76) IRPC(13) Undefined symbol: A
**Error** bcd.asm(76) IRPC(25) Undefined symbol: B
**Error** bcd.asm(76) IRPC(37) Undefined symbol: C
**Error** bcd.asm(76) IRPC(49) Undefined symbol: D
**Error** bcd.asm(76) IRPC(61) Undefined symbol: E
**Error** bcd.asm(76) IRPC(73) Undefined symbol: F
*Warning* bcd.asm(76) IRPC(85) Missing end quote

Как этого избежать? Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2013, 22:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Директива IRPC (Assembler):

Директива Pentium 4 - Assembler
Доброго времени суток! Подскажите пожалуйста какая директива лучше всего подходит для Pentium 4. Заранее спасибо!

Директива .code16gcc - Assembler
Здравствуйте! Подскажите, что делает директива .code16gcc.

Директива using - C++
Задался вопросом по поводу директива using. #include <iostream> namespace x{int a = 100; int b = 10;} namespace y{int a = 10; int...

Директива R+, R- - Free Pascal
u menea ne rabotaiut directiva R+, R- {R-} var n: byte; begin n:=255; n:=n+1; writeln(n); readln; end.

директива препроцессора - C++
Не получается запустить простенькую программу на С++ Borland,вроде сделал все как надо,но выдает ошибку что не может подключиться к...

Директива #error - C++
Как ей правильно пользоваться? Надо что бы вывело сообщение об ошибке если индекс будет больше или равен 10 int main() { ...

7
Mikl___
Заблокирован
Автор FAQ
11.05.2013, 12:26 #2
RocBoy-D,
возможно, что кавычки здесь лишние, второе endm также явно лишняя команда. Еще лучше, если бы весь макрос был приведен целиком и описано, что от него требуется
0
RocBoy-D
32 / 31 / 7
Регистрация: 10.03.2012
Сообщений: 362
16.05.2013, 18:32  [ТС] #3
Mikl___, нужно вывести на экран ASCII коды символов
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
model   small
stack   256
 
ASCII_IRPC   macro   string
        irpc  char, ABCDEF 
    mov   dl, char
        mov   string, dl
        mov   dh, dl
        shr   dh, 4
        Convert dh
        mov   string [4], dh
        and   dl, 0Fh
        Convert dl
        mov   string [5], dl
        mov   dx, offset string
        mov   ah, 9
        int   21h
        endm
endm
 
Convert macro num
    local M
    cmp   num, 9
    jbe   M
    add   num, 7h
M:      add   num, 30h
endm
 
.data
output   db   ?, '   ', ?, ?, 'h', 13, 10, '$'       ;выходная строка
 
.code
main:
        mov   ax, @data    
        mov   ds, ax
        
        ASCII_IRPC output
exit: 
        mov     ax, 4c00h 
        int     21h
end     main
0
Mikl___
Заблокирован
Автор FAQ
17.05.2013, 06:09 #4
RocBoy-D,
посмотри здесь
программа с макросом irp, с irpc пока не разобрался
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
; masm dos exe #
.286
.model small
.data
output   db   ?, '   ', ?, ?, 'h', 13, 10, '$'       ;выходная строка
.code
ASCII_IRPC   macro   string
        irp  char,<'A','B','C','D','E','F'>
    mov   dl, char
        mov   string, dl
        mov   dh, dl
        shr   dh, 4
        Convert dh
        mov   string [4], dh
        and   dl, 0Fh
        Convert dl
        mov   string [5], dl
        mov   dx, offset string
        mov   ah, 9
        int   21h
        endm
endm 
Convert macro num
    local M
    cmp   num, 9
    jbe   M
    add num,7
M:      add num,'0'
endm
start:  mov ax,@data    
        mov ds,ax
    mov ax,3
    int 10h        
        ASCII_IRPC output
exit:   mov ah,0
    int 16h
    mov ah,4Ch 
        int 21h 
end start
1
Vadimych
634 / 477 / 12
Регистрация: 10.01.2011
Сообщений: 1,047
17.05.2013, 06:22 #5
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ASCII_IRPC   macro  string
        irpc  char,<ABCDEF>
        mov   dl, '&char'
        mov   string, dl
        mov   dh, dl
        shr   dh, 4
        Convert dh
        mov   string [4], dh
        and   dl, 0Fh
        Convert dl
        mov   string [5], dl
        mov   dx, offset string
        mov   ah, 9
        int   21h
        endm
endm
2
RocBoy-D
32 / 31 / 7
Регистрация: 10.03.2012
Сообщений: 362
17.05.2013, 21:47  [ТС] #6
Vadimych, а что происходит в этой строке:

Assembler
1
mov   dl, '&char'
? Оператор '&char' непонятен (раньше не встречал)
0
Charles Kludge
Клюг
7637 / 3152 / 364
Регистрация: 03.05.2011
Сообщений: 8,382
17.05.2013, 22:38 #7
В аттаче СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ на асме.
1
Вложения
Тип файла: zip struct_asm.zip (753.6 Кб, 11 просмотров)
Vadimych
634 / 477 / 12
Регистрация: 10.01.2011
Сообщений: 1,047
17.05.2013, 22:39 #8
RocBoy-D, почитайте.

Добавлено через 59 секунд

Не по теме:

Charles Kludge, как мы с тобой синхронно.

1
17.05.2013, 22:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2013, 22:39
Привет! Вот еще темы с ответами:

Директива #import - C++
Здорова! Подключаю tlb файл #include &lt;afxdisp.h&gt; // классы автоматизации MFC #import &quot;OLE_EXE.tlb&quot;...

Не работает директива $I - Turbo Pascal
Хочу проверить наличие файла, но паскаль воспримает директиву как комментарий. Что не так? В похожей теме ответ так и никто не дал {$I-} ...

Директива препроцессора #if - C++
Вобще при коспиляции файла взятого с офф сайта микрософт endian.h Получаю вот такие ошибки 17|error: operator '==' has no left operand ...

директива assembler - Turbo Pascal
Компилирую программу со следующей процедурой: procedure TrassBlock; Assembler; ASM mov BYTE PTR @, 90h @: ret mov ax,...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru