1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Ошибка В Коде. Код Ниже.

Тема в разделе "Остальные языки программирования", создана пользователем TYMON, 10 дек 2011.

  1. TYMON

    TYMON Member

    Репутация:
    0
    Регистрация:
    19 июн 2010
    Сообщения:
    11
    Симпатии:
    0
    Определить макрокоманду, выводящую на экран строку символов, имя которой передается в качестве аргумента, и написать программу, демонстрирующую применение макрокоманды.

    Компилирую программу выдает ошибку zadacha.asm(27) OUT_STR(3) Undefined symbol: STR.
    Не получается исправить эту ошибку. Подскажите пожалуйста решение проблемы?

    <!--shcode--><pre><code class='assembler'>Out_str macro str
    Push ax
    Mov ah, 09h
    Mov dx, offset str
    Int 21h
    Pop ax
    Endm
    MASM
    MODEL small
    STACK 256
    .data
    Out_str macro str
    Push ax
    Mov ah, 09h
    Mov dx, offset str
    Int 21h
    Pop ax
    endm

    .code
    ASSUME ds:@data,es:@data
    main:
    mov ax,@data
    mov ds,ax
    xor ax,ax
    xor dx,dx
    Out_str str
    int 21h

    exit:
    mov ax,4c00h
    int 21h
    end main[/CODE]
     
  2. lazybiz

    lazybiz Well-Known Member

    Репутация:
    0
    Регистрация:
    3 ноя 2010
    Сообщения:
    1.339
    Симпатии:
    0
    Для того чтобы исправить ошибку, необходим определить саму строку str.

    Добавлено:
    Да и вообще у тебя каша какая-то.. В .data как раз должна строка str находится а не код.

    Зачем очищать регистры до и вызывать прерывание после?<!--shcode--><pre><code class='assembler'>xor ax,ax
    xor dx,dx
    Out_str str
    int 21h[/CODE]
     
  3. dimwap

    dimwap New Member

    Репутация:
    0
    Регистрация:
    18 янв 2012
    Сообщения:
    2
    Симпатии:
    0
    Она тебе на чистом английском пишет: НЕ ОПРЕДЕЛЕНА STR.
    Так и определи её. Создай в секции данных необходимое значение с адресом(меткой) str.

    LAZYBIZ прав. нужно не макрос два раза повторять, а сделать что-то типа
    .data
    str: data "vyvodimaya stroka"
     
Загрузка...
Похожие Темы - Ошибка Коде Код
  1. artik009
    Ответов:
    1
    Просмотров:
    1.107
  2. acelash
    Ответов:
    0
    Просмотров:
    1.131
  3. snake0202
    Ответов:
    1
    Просмотров:
    1.398
  4. roshax
    Ответов:
    0
    Просмотров:
    1.287
  5. Антинерусь
    Ответов:
    0
    Просмотров:
    1.282

Поделиться этой страницей