Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Подскажите, пожалуйста..

54K
22 мая 2011 года
biserinka
1 / / 08.11.2009
Добрый день.. В иституте столкнулась с проблемой, связанной с ассемблером.. Суть - необходимо отцентрировать строки в файле. Идея - считывать строку, считать количество символов и начало заполнять пробелами. Проблема появилась практически изначально - пропадает первая буква и печать идет лесенкой.. Как от этого можно избавиться?

код:


code_seg segment
assume cs:code_seg, ds:code_seg, ss:code_seg
org 100h
start:

mov ah, 9
mov dx, offset mes
int 21h


MOV AH,0AH
LEA DX,[buf]
INT 21H

mov BX, DX
add BL, [buf+1]
;adc BH, 0
mov byte [BX+2], 0

mov ah,3dh
mov al,2
mov dx,offset buf+2
int 21h


mov bx, ax
mov [des],AX

mov AH, 3Fh
;mov BX, [des]
mov DX, offset buf+2
mov CX, 4096
int 21h

mov CX, AX
mov BX, DX

mov DX, offset mes1
mov AH, 09h
int 21h

label1 proc near
mov DX, 13,10
inc BX
label1 endp
m:
mov AH, 02h
mov DL, [bx]
cmp DL, 13,10
je call label1
inc BX
int 21h
loop m

mov AH, 3Eh
;mov BX, [des]
int 21h

xor AH, AH
int 16h
mov ax, 4c00h
int 21h




mes db "Enter name of file:$"
mes1 db 13, 10, "Your file:", 13, 10, "$"
des dw 0
buf db 255,?,4096 dup(?)

code_seg ends
end start
ret
252
23 мая 2011 года
koderAlex
1.4K / / 07.09.2005
а алгоритм ваших действий не пробовали составить ?
очень рекомендую . сильно помогает . )
316
23 мая 2011 года
Alm3n
889 / / 29.05.2009
Цитата:
assume cs:code_seg, ds:code_seg, ss:code_seg


у сегментов должны быть разные имена.
вообще, начало файла должно выглядеть примерно так:

Код:
.MODEL SMALL
.STACK 64

data_seg segment
mes db "Enter name of file:$"
mes1 db 13, 10, "Your file:", 13, 10, "$"
des dw 0
buf db 255,?,4096 dup(?)
data_seg ends

code_seg segment
assume cs:code_seg, ds:data_seg

 
Код:
label1 proc near
mov DX, 13,10
inc BX
label1 endp

эт что, функция или метка? если метка, то proc и endp не нужны. если функция, то перенести бы ее отсюда куда-нибудь и добавить ret. а вот в конце файла ret убрать. он нужен только для выхода из вызванных функций.
Цитата:
je call label1


есои функция - call, если метка - je. третьего не дано.

Цитата:
loop m


до какого момента он будет работать? вижу, что с файла пытаются считать 4к байт, но если их там нет или файл не открылся, то в АХ может вернуться и 00 и 05. нужна проверка. лучше временно сохранить AX в стек, а после 09h извлечь, потому что, мало ли что эта 09h в другие ресгистры пишет. а вообще, лучше все это удалить и вдумчиво написать заново.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог