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

Assembler для начинающих

Войти
Регистрация
Восстановить пароль
 
Inomezi
0 / 0 / 0
Регистрация: 24.04.2015
Сообщений: 132
#1

Исправить ошибку "16-разрядная подсистема MS DOS" - Assembler

07.06.2015, 23:04. Просмотров 550. Ответов 7
Метки нет (Все метки)

Помогите найти ошибку,при компиляции когда я уже запускаю .exe выдаёт вот такую ошибку
вот мой код:
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
model small
.stack 100h
.data
ch1 db 'a'      
ch2 db 'b'
ch3 db 'c'
ch4 db 'd'
ch5 db 'e'
.code
start:
mov ax,@data
mov ds,ax
mov al,ch1     
call bukva      
mov al,ch2     
call bukva
mov al,ch3
call bukva
mov al,ch4
call bukva
mov al,ch5      
call bukva
mov ah,4ch      
int 21          
bukva proc near 
mov ah,02h      
int 21          
ret
bukva endp
end start
end
0
Миниатюры
Исправить ошибку "16-разрядная подсистема MS DOS"  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2015, 23:04
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Исправить ошибку "16-разрядная подсистема MS DOS" (Assembler):

Ошибка. 16-разрядная подсистема MS-DOS - Assembler
Программа не хочет запускаться в turbo debugger. Выскакивает ошибка. Хотя вчера все было OK use16 org 100h ...

Выходит ошибка Необработанное исключение в "0x0007102f" в "Lab08.exe": 0xC0000005: Нарушение прав доступа при чтении "0x00078000". Как исправить - Assembler
.586 .model flat, stdcall option casemap :none ; case sensitive ; Раздел подключения библиотек include \masm32\include\windows.inc ...

Как исправить ошибку "Near jump or call to different CS"? - Assembler
Почему Tasm показывает ошибку в 11 строке? CSEG segment org 100h beg: mov cx, 3 label_1: mov ah, 9

Исправить ошибку "Division by 0" - Assembler
Привет. Не пойму почему, во втором DIV вываливается Division by 0. .MODEL SMALL .DATA x DW 524 y DB 15 z DW ? .CODE ...

16 разрядная подсистема ms-dos - Assembler
выводит ету ошибку как только откомпилил при 1 запуске процессор ntvdm обнаружил недопустимую инструкцию cs:0000 ip:0077 op:f0 37...

Исправить ошибку "FCB Unavailable" - Assembler
DOSSEG .MODEL SMALL .STACK 100H .DATA Prompt db 13,10,"che kak?(y/n)$" NoMessage DB 13,10,"y" YesMessage DB 13,10,"n" ...

7
tahir_
159 / 100 / 25
Регистрация: 18.05.2015
Сообщений: 474
07.06.2015, 23:11 #2
И, запустить 16 битное приложение Винда не даст (если конечно она не 95 и 98),
поставь dosbox или виртуалку с dos
0
proc3nt
волшебник
605 / 470 / 144
Регистрация: 26.05.2012
Сообщений: 1,354
08.06.2015, 00:56 #3
все гораздо проще и прозаичнее. скажем так - ошибочки есть и они жизненноважные.
первым делом нужно поставить точку перед моделью памяти
Assembler
1
.model small
второе. прерывание 21 здесь некорректно. есть прерывание 21h (в десятичной системе 33) и оно должно употребляться при использовании функции выхода из программы и при выводе символа на консоль.
третье. внутри процедуры символ не будет выводиться. так как перед вызовом функции bukva символ помещается в регистр al. а при выводе символа второй функцией символ должен быть помещен в регистр dl.

вот посмотри переделанный код. и сравни со своим.
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
.model small
.386
 
.data
ch1 db 'a' 
ch2 db 'b'
ch3 db 'c'
ch4 db 'd'
ch5 db 'e'
 
.stack 100h
 
.code
start:
mov ax,@data
mov ds,ax
 
mov dl,ch1 
call bukva 
mov dl,ch2 
call bukva
mov dl,ch3
call bukva
mov dl,ch4
call bukva
mov dl,ch5 
call bukva
 
mov ah,01h
int 21h
 
mov ah,4ch 
int 21h
 
bukva proc near 
mov ah,02h 
int 21h 
ret
bukva endp
end start
и все будет у тебя ok. с тебя печенюшка) ну или на крайний случай спасибо не забудь нажать.
0
Ethereal
3015 / 1288 / 166
Регистрация: 17.02.2013
Сообщений: 2,192
08.06.2015, 06:46 #4
Цитата Сообщение от tahir_ Посмотреть сообщение
И, запустить 16 битное приложение Винда не даст (если конечно она не 95 и 98),
Windows XP 32-разрядная вполне допускает запуск 16-битных приложений. С ограничениями на предмет добраться до портов ввода-вывода, но в остальном без проблем.
1
Mikl___
Автор FAQ
10958 / 5790 / 507
Регистрация: 11.11.2010
Сообщений: 10,800
08.06.2015, 07:31 #5
Цитата Сообщение от Ethereal Посмотреть сообщение
С ограничениями на предмет добраться до портов ввода-вывода
А как обойти это ограничение рассказано в Зачем нужен драйвер и как написать простейший драйвер
0
Constantin Cat
1427 / 855 / 277
Регистрация: 28.02.2015
Сообщений: 2,102
Завершенные тесты: 1
08.06.2015, 12:52 #6
proc3nt
Цитата Сообщение от proc3nt Посмотреть сообщение
нужно поставить точку перед моделью памяти
Это тасм, он допускает отсутсвие точки.
0
Mikl___
Автор FAQ
10958 / 5790 / 507
Регистрация: 11.11.2010
Сообщений: 10,800
08.06.2015, 16:34 #7
Цитата Сообщение от Constantin Cat Посмотреть сообщение
Это тасм, он допускает отсутсвие точки
в режиме ideal допускает, в режиме masm-совместимости не должен
0
Constantin Cat
1427 / 855 / 277
Регистрация: 28.02.2015
Сообщений: 2,102
Завершенные тесты: 1
08.06.2015, 16:57 #8
По умолчанию стоит ideal, а masm ещё включать нужно.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2015, 16:57
Привет! Вот еще темы с ответами:

Пример "шапки" и сегментации EXE программы под DOS для FASM - Assembler
...доброго времени суток, уважаемые форумчане!... возник вопрос: где можно посмотреть пример (для начала самого простого, в стиле Hello,...

Есть строка. Нужно сделать так, чтобы "re" и "not" заменялись на "***". - Assembler
Есть строка. Нужно сделать так, чтобы "re" и "not" заменялись на "***". Data Segment para 'Data' max equ 255 str_prm db 'Input...

Ошибка "relative jump out of range by 0007h", как исправить? - Assembler
keypressed: mov AH, 06h ;функция dos mov DL, 0FFh ;ввод символа из буфера клавиатуры без ожидания int 21h cmp AL, 27 ;Esc ...

Из двух строк "ABCDE" и "12345" сделать одну - "A1*B2*C3*D4*E5" - Assembler
Нужно из двух строк ‘ABCDE’ и ‘12345’ сделать одну - ‘A1*B2*C3*D4*E5’. Помогите, пожалуйста, решить!


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

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

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