Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
1 / 1 / 0
Регистрация: 09.12.2012
Сообщений: 8

forward reference needs override

03.03.2013, 22:04. Показов 2590. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите где ошибка.Выдает ошибку (40)forward reference needs override
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
.model small                    
cdata segment para  common "data"   ;общий сегмент данных                         
message2 db 'Stroka1:$'         ;выводимое приглашение для ввода символа
message5 db 'Result1:$'         ;выводимая строка-результат
cdata ends
code segment para public "code"
assume cs:code,ds:cdata,es:cdata
FullData STRUC                  ;описание структуры даных для хранения символов
    stroka1 db 12 dup(0)
FullData ENDS
 
FD FullData 1 dup(<>)           ;выделяем память для структуры
.stack 256h                     ;размер стека 256h байт
.code                           ;описание сегмента
INPUT proc far                  ;процедура для ввода символов
    xor di,di                   ;обнуляем di-счетчик символов
    
m1: 
    mov ah,00h                  ;функция 00h - ввод символа без эха
    int 16h                     ;прерыванием BIOS
    cmp al,32                   ;если код символа <32
    jl m2                       ;переходим к m2
    cmp di,cx                   ;сравниваем значение di и cx
    je m1                       ;переходим к m1
    cmp al,126                  ;если код символа >126
    jg m1                       ;переходим к m3
    jmp m5                      ;иначе переходим к m5
    
m2:
    cmp di,0                    ;сравниваем значение di с нулем
    je m1                       ;переходим к m1
    cmp al,8                    ;если нажата клавиша BSpace
    je m4                       ;перходим к m4
    cmp al,13                   ;если нажата клавиша Enter
    je m3                       ;переходим к m3
    jmp m1                      ;иначе переходим к m1
    
 
m3:                             ;Enter
    call NEWSTR                 ;вызов процедуры перехода на новую строку
    jmp quit                    ;переход к метке quit
    
m4:                             ;BSpace
    mov dl,al                   ;запись символа в dl для вывода на экран
    mov ah,02h                  ;вывод символа на экран                  
    int 21h                     ;прерывание DOS
    push dx                     ;сохраняем введенный символ в стеке
    mov dl,' '                  ;стирание символа под курсором(пробел)
    mov ah,02h                  ;вывод символа на экран
    int 21h                     ;прерывание DOS
    pop dx                      ;извлечение dx из стека
    mov ah,02h                  ;вывод символа на экран
    int 21h                     ;прерывание DOS
    dec di                      ;декремент значение di
    jmp m1                      ;переход к m1
    
m5:
    mov [bx+di],al              ;запись в bx со смещением символы
    inc di                      ;инкремент di
    mov dl,al                   ;запись символа в dl для вывода на экран
    mov ah,02h                  ;вывод символа на экран
    int 21h                     ;прерывание DOS
    jmp m1                      ;переход к m1
    
quit:
    ;mov al,di                  ;запись в al значение 36
    mov[bx+10],di               ;запись в bx со смещением символал
    ret                         ;возврат из подпрограммы
INPUT endp
 
OUTPUT proc far             ;процедура вывода
    mov ah,09h                  ;функция 09h - вывод строки на экран
    int 21h                     ;прерывание DOS
    ret                         ;возврат из подпрограммы
OUTPUT endp
 
PROCEDURE proc far              ;процедура работы со строками  
mp1:
    xor si,si                   ;обнуление счетчика
    xor cx,cx
    mov cx,[byte ptr bx+10]
 
mp2:
    mov al,[bx+si]              ;занести в al значение ячейки регистра bx
    cmp cx,si                   ;сравнить значение al с 36
    je quitp                        
    cmp al,48                   ;сравниваем значение ah со значением 48
    jl mp3
    cmp al,57
    jg mp3
    inc si                      ;инкрементируем si
    jmp mp2                     ;переход к m1
    
mp3:
    mov al,[bx+si+1]
    mov [bx+si],al
    inc si
    cmp cx,si
    je mp4
    jmp mp3
mp4:
    mov [bx+si],' '
    dec cx
    mov [bx+10],cl
    jmp mp1
        
quitp:
    ret                         ;возврат из подрограммы
PROCEDURE endp
 
NEWSTR proc far             ;процедура перехода на новую строку
    push dx                     ;сохранение значений регистров dx
    push ax                     ;и ax в стеке
    mov dl,10                   ;10 - перевод на новую строку
    mov ah,2                    ;функция 2 - вывод символа на экран
    int 21h                     ;прерыванием DOS
    mov dl,13                   ;13 - возврат курсора на начало строки
    mov ah,2                    ;функция 2 - вывод символа на экран
    int 21h                     ;прерыванием DOS
    pop ax                      ;возвращение значений регистров ax
    pop dx                      ;и dx из стека
    ret                         ;возврат из подпрограммы
NEWSTR endp
public INPUT
public OUTPUT
public PROCEDURE
public NEWSTR
code ends
end[SPOILER][/SPOILER]
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.03.2013, 22:04
Ответы с готовыми решениями:

Forward reference needs override
Люди, подскажите в чем ошибка? Файл ни закрывается и даже ни компилиться в tasm пишет: (10)Forward reference needs override и то же самое с...

Method is marked as an override but no suitable method found to override
Всем доброго времени суток! Я начинающий в языке программирования, поэтому, может, извините за банальный вопрос, но при компиляции выдаёт...

Ошибки underfined reference to parentClass::method и unerfined reference to vtable при линковке
При сборке компилятор выдает ошибки underfined reference to и unerfined reference to vtable. Есть базовый класс, два наследуемых от него и...

2
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
03.03.2013, 22:29
К какому компилятору лепите либу?
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
.model small                    
;.stack 256h                     ;размер стека 256h байт
cdata segment para  common "data"   ;общий сегмент данных                           
message2 db 'Stroka1:$'         ;выводимое приглашение для ввода символа
message5 db 'Result1:$'         ;выводимая строка-результат
cdata ends
code segment para public "code"
;assume cs:code,ds:cdata,es:cdata
FullData STRUC                  ;описание структуры даных для хранения символов
    stroka1 db 12 dup(0)
FullData ENDS
 
FD FullData 1 dup(<>)           ;выделяем память для структуры
;.code                           ;описание сегмента
INPUT proc far                  ;процедура для ввода символов
    xor di,di                   ;обнуляем di-счетчик символов
    
m1: 
    mov ah,00h                  ;функция 00h - ввод символа без эха
    int 16h                     ;прерыванием BIOS
    cmp al,32                   ;если код символа <32
    jl m2                       ;переходим к m2
    cmp di,cx                   ;сравниваем значение di и cx
    je m1                       ;переходим к m1
    cmp al,126                  ;если код символа >126
    jg m1                       ;переходим к m3
    jmp m5                      ;иначе переходим к m5
    
m2:
    cmp di,0                    ;сравниваем значение di с нулем
    je m1                       ;переходим к m1
    cmp al,8                    ;если нажата клавиша BSpace
    je m4                       ;перходим к m4
    cmp al,13                   ;если нажата клавиша Enter
    je m3                       ;переходим к m3
    jmp m1                      ;иначе переходим к m1
    
 
m3:                             ;Enter
    call NEWSTR                 ;вызов процедуры перехода на новую строку
    jmp quit                    ;переход к метке quit
    
m4:                             ;BSpace
    mov dl,al                   ;запись символа в dl для вывода на экран
    mov ah,02h                  ;вывод символа на экран                 
    int 21h                     ;прерывание DOS
    push dx                     ;сохраняем введенный символ в стеке
    mov dl,' '                  ;стирание символа под курсором(пробел)
    mov ah,02h                  ;вывод символа на экран
    int 21h                     ;прерывание DOS
    pop dx                      ;извлечение dx из стека
    mov ah,02h                  ;вывод символа на экран
    int 21h                     ;прерывание DOS
    dec di                      ;декремент значение di
    jmp m1                      ;переход к m1
    
m5:
    mov [bx+di],al              ;запись в bx со смещением символы
    inc di                      ;инкремент di
    mov dl,al                   ;запись символа в dl для вывода на экран
    mov ah,02h                  ;вывод символа на экран
    int 21h                     ;прерывание DOS
    jmp m1                      ;переход к m1
    
quit:
    ;mov al,di                  ;запись в al значение 36
    mov[bx+10],di               ;запись в bx со смещением символал
    ret                         ;возврат из подпрограммы
INPUT endp
 
OUTPUT proc far             ;процедура вывода
    mov ah,09h                  ;функция 09h - вывод строки на экран
    int 21h                     ;прерывание DOS
    ret                         ;возврат из подпрограммы
OUTPUT endp
 
PROCEDURE proc far              ;процедура работы со строками   
mp1:
    xor si,si                   ;обнуление счетчика
    xor cx,cx
    mov cl, byte ptr [bx+10]
 
mp2:
    mov al,[bx+si]              ;занести в al значение ячейки регистра bx
    cmp cx,si                   ;сравнить значение al с 36
    je quitp                        
    cmp al,48                   ;сравниваем значение ah со значением 48
    jl mp3
    cmp al,57
    jg mp3
    inc si                      ;инкрементируем si
    jmp mp2                     ;переход к m1
    
mp3:
    mov al,[bx+si+1]
    mov [bx+si],al
    inc si
    cmp cx,si
    je mp4
    jmp mp3
mp4:
    mov byte ptr [bx+si],' '
    dec cx
    mov [bx+10],cl
    jmp mp1
        
quitp:
    ret                         ;возврат из подрограммы
PROCEDURE endp
 
NEWSTR proc far             ;процедура перехода на новую строку
    push dx                     ;сохранение значений регистров dx
    push ax                     ;и ax в стеке
    mov dl,10                   ;10 - перевод на новую строку
    mov ah,2                    ;функция 2 - вывод символа на экран
    int 21h                     ;прерыванием DOS
    mov dl,13                   ;13 - возврат курсора на начало строки
    mov ah,2                    ;функция 2 - вывод символа на экран
    int 21h                     ;прерыванием DOS
    pop ax                      ;возвращение значений регистров ax
    pop dx                      ;и dx из стека
    ret                         ;возврат из подпрограммы
NEWSTR endp
public INPUT
public OUTPUT
public PROCEDURE
public NEWSTR
;code ends
end
0
1 / 1 / 0
Регистрация: 09.12.2012
Сообщений: 8
04.03.2013, 10:49  [ТС]
Я новичок в ассемблере, поэтому возможно у меня много косяков.Но ошибка моя явно не в закомментированных вами строках.После вашего кода отладчик выдал мне 16 ошибок.после моего выдает 1.Еще на всякий случай,чтобы ясно было,что я вообще делаю.Мое задание называется раздельная трасляция.Здесь я представила один из модулей программы,т.к. первый модуль транслируется без ошибок...а в этом я не понимаю как исправить ошибку,хотя догадываюсь,что ошибка у меня из-за атрибутов дальность.ну все равно спасибо за помощь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.03.2013, 10:49
Помогаю со студенческими работами здесь

Override
Класс student унаследуется от класса man. Метод PrintInfo() должен выводить информацию про человека, но если студент, тто еще и время...

New и override
Есть код: using System; namespace Events { /// &lt;summary&gt; /// Предоставляет информацию о событии. ///...

Override vs new
namespace MyCollections { public interface IPrintable { string GetStringRepresentation(); void Print(); void Println();...

Не срабатывает forward
Здравствуйте! Подскажите, пожалуйста, почему мой forward не перекидывает меня на нужную страницу? В case заходит, но ничего не...

Forward declaration
#ifndef __PROGTEST__ #include много инклудов using namespace std; #endif /* __PROGTEST__ */ template &lt;typename _T, typename...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru