Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
trustguy
0 / 0 / 0
Регистрация: 07.02.2015
Сообщений: 16
#1

Файл *.COM не открывается в dosbox

22.05.2015, 17:30. Просмотров 593. Ответов 3
Метки нет (Все метки)

Суть проблемы вот в чем: я использовал TASM, чтобы написать программу на ассемблере. *.com файл создался успешно. Однако при попытке его открыть через DOSbox, программа зависала и вылетала. Все кодировки я проверил. С этим проблем нет. Так же прилагаю исходник, может быть, в нем есть какая-то ошибка:
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
prg segment para public 'code'
assume cs:prg,ds:prg,es:prg,ss:prg
org 100h
begi: jmp start
include bin2str.asm                 
include str2bin.asm 
buf db 06,00,0ah dup('')
messin db 'Input number: $' 
messout db 'Result = $'     
start: lea dx,messin
mov ah,09h
int 21h 
lea dx,buf
mov ah,0ah
int 21h
mov bx,dx
inc bx
call str2bin
add ax,04h
lea bx,buf
call bin2str    
lea dx,messout
mov ah,09h
int 21h
lea dx,buf+1
mov ah,09h
int 21h
int 20h
prg ends    
end begi
Ф-ии str2bin и bin2str используются для преобразования введеной строки в число и наоборот, соответственно.

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2015, 17:30
Ответы с готовыми решениями:

Из командной строки файл вообще не открывается а если открыть через проводник, то открывается и сразу вылетает
masm model small stack 256 .data per_1 db 23 per_2 dw 9856 per_3 dd...

Не открывается файл *.com
Скомпилировал программу на ассемблере через tasm. Все прошло успешно. В...

Почему то файл exe не открывается.Это ассемблер
Лаб работа на ассемблере.

DOSBOX
день добрый всем. созрел такой вопрос. пишу программу, которая проделывает...

Dosbox
Есть файл proga.asm. Как создать Proga.exe из Proga.asm с помощью dosbox?

3
Энрике
0 / 0 / 0
Регистрация: 22.05.2015
Сообщений: 5
22.05.2015, 20:52 #2
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Start:
;------------------------------------------------------
 
; Чтобы Обрабатывать данные - из Вашего сегмента данных,
; необходимо занести их, в следующем варианте два:
 
Start: ;(Точка Входа:)
; 1)
mov ax, @data
mov ds, ax
mov es, ax
;
; 2)
push    cs
pop ds
;
;
0
Ethereal
3400 / 1539 / 197
Регистрация: 17.02.2013
Сообщений: 2,405
22.05.2015, 22:31 #3
Так он же говорит про COM-файл. А там все это не нужно. В момент старта программы CS=DS=ES=SS.

Добавлено через 1 минуту
Цитата Сообщение от Энрике Посмотреть сообщение
Обрабатывать данные - из Вашего сегмента данных,
У COM-программы один сегмент на все про все.

Добавлено через 2 минуты
@trustguy
Цитата Сообщение от trustguy Посмотреть сообщение
include bin2str.asm
include str2bin.asm
Прицепи эти файлы архивом к сообщению. Без них ничего сказать нельзя. Криминала в твоей программе не видно.
0
Constantin Cat
2164 / 976 / 360
Регистрация: 28.02.2015
Сообщений: 2,215
Завершенные тесты: 1
22.05.2015, 23:08 #4
Вы параметры строки BUF помните:
buf 06 - максимальное количество вводимых символов;
buf+1 00 - количество введенных символов, заполняется прерыванием, можно ставить знак вопроса;
buf +2 10*' '- заполняется прерыванием, в конце строки 0Dh, можно ставить знак вопроса вместо пробела;
обычно делают так:
Assembler
1
2
3
4
szbuf   equ 10
buf db  szbuf
    db  ?
    db  szbuf dup(?)
Это я о том, что 06 не равно 0А.

ещё:
Assembler
1
2
3
13 lea dx,buf;- следующая строка - загнать DX в стек: PUSH DX
. . .
16 mov bx,dx; заменить на POP BX
1)не факт, что прерывание сохраняет DX(эмуляторы по разному всё обрабатывают);
2)На размер кода не влияет, но так надёжнее
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2015, 23:08

DosBox и MS-DOS
Здравствуйте, у меня вот такая проблема... Написал программу (TASM) и запускал...

Int 20 в dosbox
Помогите пожалуйста с программой. Как реализовать int 20 в данном коде. Если...

Command.com и DosBox
При запуске command.com ->>>Exit to error: unhandled dos 21 call 53


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

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

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