Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
RocBoy-D
40 / 39 / 23
Регистрация: 10.03.2012
Сообщений: 374
1

Директива IRPC

10.05.2013, 22:05. Просмотров 1277. Ответов 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
Ответы с готовыми решениями:

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

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

Директива org
Объясните что значит org 1000h (FASM) если программа будет загружена по адресу...

Директива using
Задался вопросом по поводу директива using. #include <iostream> namespace...

Директива R+, R-
u menea ne rabotaiut directiva R+, R- {R-} var n: byte; begin ...

7
Mikl___
Автор FAQ
11978 / 6247 / 594
Регистрация: 11.11.2010
Сообщений: 11,305
11.05.2013, 12:26 2
RocBoy-D,
возможно, что кавычки здесь лишние, второе endm также явно лишняя команда. Еще лучше, если бы весь макрос был приведен целиком и описано, что от него требуется
0
RocBoy-D
40 / 39 / 23
Регистрация: 10.03.2012
Сообщений: 374
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
11978 / 6247 / 594
Регистрация: 11.11.2010
Сообщений: 11,305
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
635 / 478 / 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
40 / 39 / 23
Регистрация: 10.03.2012
Сообщений: 374
17.05.2013, 21:47  [ТС] 6
Vadimych, а что происходит в этой строке:

Assembler
1
mov   dl, '&char'
? Оператор '&char' непонятен (раньше не встречал)
0
Charles Kludge
Клюг
7645 / 3160 / 382
Регистрация: 03.05.2011
Сообщений: 8,382
17.05.2013, 22:38 7
В аттаче СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ на асме.
1
Вложения
Тип файла: zip struct_asm.zip (753.6 Кб, 11 просмотров)
Vadimych
635 / 478 / 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

директива перпроцессора ?
Всем привет. Помогите понять. Следующий код вызывает ошибку в строке 5...

Директива include
Допустим я создаю файл header.h:int N();, а так же файл header.cpp:#include...

Не срабатывает директива
добрый день, друзья! не могу понять, почему не срабатывает директива. -...


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

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

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