Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2023, 17:01   #1
ChestIotVaga
Пользователь
 
Регистрация: 21.11.2022
Сообщений: 84
По умолчанию Программа как сделать com file?

подскажите как сделать этот код в com файл пробовал .model tiny пишет segment relocate помогите решить проблему очень надо.
.model compact
; Сегмент стека
s_seg segment
db 128 dup(?)
s_seg ends

; Сегмент данных
d_seg segment
str_prompt db 'Enter string: $'
str_result db 13,10,'Chars: $'
tab db 256 dup(0) ; массив всех возможных символов
d_seg ends

; Сегмент сода
c_seg segment 'code'
; привязываем метки к адресам сегментов
assume ds_seg, ss:s_seg, cs:c_seg
main:
; устанавливаем сегмент стека
mov ax, s_seg
mov ss, ax
; устанавливаем сегмент данных
mov ax, d_seg
mov ds, ax


; печатем приглашение
mov ah, 09h
lea dx, str_prompt
int 21h

xor bx, bx
@1: ; читаем символ
mov ah, 01h
int 21h
; проверяем конец строки
cmp al, 13
je @2
; отмечаем в таблице
mov bl, al
mov tab[bx], 1
jmp @1

; печатем результат
@2: mov ah, 09h
lea dx, str_result
int 21h

mov cx, 256
xor bx, bx
@3: ; проверяем отметку в таблице
cmp tab[bx], 1
jne @4
; печатаем символ
mov ah, 02h
mov dl, bl
int 21h
; сдвигаемся по таблице
@4: inc bx
loop @3

; выход из программы
mov ax, 4C00h
int 21h
c_seg ends

end main
ChestIotVaga вне форума Ответить с цитированием
Старый 21.03.2023, 17:22   #2
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Форматируйте код используя теги [CODE][/CODE]. Иначе ответа можете не дождаться.
В COM файле не может быть сегментов, а модель tiny предполагает расположение всей программы в пределах одного сегмента.
Код:
.model tiny
;.model compact
; Сегмент стека
;s_seg segment
;			db 128 dup(?)
;s_seg ends

	jmp	main
; Сегмент данных
;d_seg segment
str_prompt		db 'Enter string: $'
str_result		db 13,10,'Chars: $'
tab			db 256 dup(0) ; массив всех возможных символов
;d_seg ends

; Сегмент сода
;c_seg segment 'code'
; привязываем метки к адресам сегментов
;assume ds:d_seg, ss:s_seg, cs:c_seg
main:
; устанавливаем сегмент стека
;	mov	ax, s_seg
;	mov	ss, ax
; устанавливаем сегмент данных
;	mov	ax, d_seg
;	mov	ds, ax


; печатем приглашение
	mov	ah, 09h
	lea	dx, str_prompt
	int	21h

	xor	bx, bx
  @1: ; читаем символ
	mov	ah, 01h
	int	21h
; проверяем конец строки
	cmp	al, 13
	je	@2
; отмечаем в таблице
	mov	bl, al
	mov	tab[bx], 1
	jmp	@1

; печатем результат
  @2:
	mov	ah, 09h
	lea	dx, str_result
	int	21h

	mov	cx, 256
	xor	bx, bx
  @3: ; проверяем отметку в таблице
	cmp	tab[bx], 1
	jne	@4
; печатаем символ
	mov	ah, 02h
	mov	dl, bl
	int	21h
; сдвигаемся по таблице
  @4:
	inc	bx
	loop	@3

; выход из программы
	mov	ax, 4C00h
	int	21h
;c_seg ends

;end main

Последний раз редактировалось macomics; 21.03.2023 в 17:24.
macomics вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
The selected file is solution file, but was created with newer version,, and cann't be opened Haberman Visual C++ 3 09.07.2019 20:42
Если в основном файле проекта (где есть функция main) есть #include "file.hpp", и в файле file.cpp есть #include "file.hpp", то как компилятор узнает, что нам нужен файл file.cpp? Андрей 93 Общие вопросы C/C++ 13 21.12.2016 16:03
C1083: Cannot open include file: 'd3dx9.h': No such file or directory CrowleyNoob Общие вопросы C/C++ 15 18.09.2016 21:55
Visual Studio не компилируется программа. Ошибка в iostream.h (no such file or directory). В чем проблема? Mubat Visual C++ 2 19.10.2011 20:41
Как сделать чтоб вместо file.txt было значение Edit1.text quarty Общие вопросы Delphi 2 22.10.2010 16:54