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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2011, 13:15   #1
sasha0123
 
Регистрация: 03.12.2010
Сообщений: 3
По умолчанию Выравнивание по левой крайней границе

Создать текстовый файл. Выполнить выравнивание строк по левой крайней границе. После выполнения операций задать атрибут файла «только для чтения ».

я здела почти все кроме выравнивания помогите напишыте как выровнять полевой границе!!!!

Код:
.8086
.MODEL SMALL
.STACK 100h
.DATA
Count EQU 5
Buffer DB 80, ?, 80 DUP (' ')
Handle DW ?
PathName DB 'tesxt.txt',0
message1 DB 'Input data->',0dh,0ah,'$'
message2 DB 'Error!!',0dh,0ah,'$'
message3 DB 'Output data->',0dh,0ah,'$'
CRLF DB 0dh,0ah,'$'
.CODE
.STARTUP
LOCALS
call CreateFile
call WriteFile
call CloseFile
call OpenFile
call ReadFile
call CloseFile
.EXIT 0
;----------------------------------------------------------------------------------------
CreateFile Proc Near
mov ah,3ch
mov cx,0 ; атрибут=0 (звичайний файл)
lea dx,pathname
int 21h
jc @@1
mov handle,ax ; дескриптор файла
ret
@@1: call Error
ret
CreateFile endp
;----------------------------------------------------------------------------------------
WriteFile Proc Near
lea dx,message1
mov ah, 9h
int 21h
mov cx,count
@@1: push cx
; очищення буфера
mov al,' '
push ds
pop es
11
mov di,offset buffer+2
mov cx,80
cld
rep stosb
; читання рядка з клавіатури
mov ah,0ah
lea dx,buffer
int 21h
; перехід на новий рядок
mov ah,9h
lea dx,CRLF
int 21h
; кінець рядка в буфері є символом CR з кодом 0dh
; дописуємо символ LF (0ah) після символа 0dh (отримуємо перехід на новий рядок)
mov al,0ah
push ds
pop es
mov di,offset buffer+2
xor bx,bx
mov bl, Byte Ptr [buffer+1] ; реальна кількість символів
add di,bx
inc di
stosb
; si – кількість символів + 2 (0dh,0ah)
mov si,bx
add si, 2
; записати рядок у файл
mov ah,40h
mov bx,handle
mov cx, si
lea dx,buffer+2
int 21h
jnc @@2
call Error
@@2: pop cx
loop @@1
ret
WriteFile endp
;----------------------------------------------------------------------------------------
CloseFile Proc Near
mov ah,3eh
mov bx,handle
int 21h
ret
CloseFile endp
;----------------------------------------------------------------------------------------
OpenFile Proc Near
mov ah,3dh
mov al,0; режим: 0- read, 1- write, 2-read/write
mov cx,0; атрибут файла
lea dx,pathname
int 21h
jc @@1
12
mov handle,ax
ret
@@1: call Error
ret
OpenFile endp
;----------------------------------------------------------------------------------------
ReadFile Proc Near
lea dx,message3
mov ah, 9h
int 21h
@@1: xor si,si
@@2:
; читання з файлу
lea dx,buffer+2
add dx,si
mov ah,3fh
mov bx,handle
mov cx,1 ; кількість символів для читання
int 21h
jc @@3
cmp ax,0 ;EOF?
je @@4
inc si
cmp Byte Ptr buffer[si+2-1], 0ah ; чи кінець рядка?
jne @@2
; виведення на екран
mov ah,40h; функція виведення рядка
lea dx,buffer+2
mov bx,01; дескриптор екрана
mov cx,si
int 21h
jmp @@1
@@3: call Error
@@4: ret
ReadFile endp
;----------------------------------------------------------------------------------------
Error Proc Near
mov ah,9h
lea dx,message2
int 21h
Error endp
;----------------------------------------------------------------------------------------
END
sasha0123 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обработать клик по границе дочернего окна? sVasilich Общие вопросы C/C++ 5 14.09.2010 11:46
нажатие левой кнопки мыши beygul Помощь студентам 6 13.05.2010 20:04
ListBox выделение левой кнопкой пауэрлифтинг Общие вопросы Delphi 6 07.03.2010 23:52
Программа должна вычислять количество точек на границе круга heny Помощь студентам 9 05.03.2010 11:32
PopupMenu левой кнопкой мыши Pinya Компоненты Delphi 3 22.08.2008 19:23