+ Ответить в теме
Показано с 1 по 2 из 2

Тема: вращение байта в файле

  1. #1
    ilushka2306 is on a distinguished road
    Регистрация
    19.06.2010
    Сообщений
    1
    Вес репутации
    0

    По умолчанию вращение байта в файле

    нужно
    открыть файл с текстом;
    создать второй файл;
    считать из первого файла текст;
    записать во второй файл.
    Условие: вращение байта и 4-х байт в файле.

    Вот есть примерный текст программы, помогите пожалуйста исправить. Очень нужно!
    Код:

    dosseg
    .model tiny
    .code
    org 100h

    st1:
    jmp st5
    ;объявление переменных
    bufin db 1000 dup (?) ;Буфер ввода
    counter dw ?
    filename db 'myfile.001',0 ;Спецификация файла
    filename1 db 'myfile1.001',0
    myfile dw ?
    myfile1 dw ?
    numbyte dw ?

    num_symb dw 100 ; число байт для разового считываения
    st5:
    mov counter, 0 ; обнуление счетчика байт

    mov AH,3Dh ;Функция открытия файла
    mov AL,0
    mov DX,offset filename ;Адрес имени файла
    int 21h
    mov myfile,ax ;Сохраним дескриптор

    ; создание второго файла
    mov ah, 3ch ; функция создания файла
    mov cx, 0 ; без атрибутов
    mov dx, offset filename1 ; адрес имени файла
    int 21h ; вызов DOS
    mov myfile1 , ax ; сохраним дескриптор файла

    st4:
    mov AH,3Fh ;Функция чтения
    mov bx,myfile ;Дескриптор
    mov cx,num_symb ;Столько читать
    mov dx,offset bufin ;Сюда
    int 21h
    cmp ax,0
    jz st6
    ;Столько реально прочитали
    mov numbyte,ax

    mov bx,offset bufin




    st2:

    ; вращение байта

    mov al,[bx]
    ror al, 4
    mov [bx], al
    inc bx
    dec cx
    jnz st2

    ;попарная перестановка
    mov bx,offset bufin
    mov cx,numbyte
    shr cx,1
    st3:
    mov ah,[bx]
    mov al,[bx+1]
    mov [bx], al
    mov [bx+1], ah
    add bx,2
    dec cx
    jnz st3

    mov AH,40h ;Функция записи
    mov bx,myfile1 ;Дескриптор
    mov cx,numbyte
    mov dx,offset bufin ;Адрес буфера
    int 21h ;Вызов DOS


    mov cx, numbyte
    cmp num_symb, cx ; если последний считанный блок менее заданной длинны, то завершаем программу
    jz st4

    st6:
    mov AH,3Eh ;Функция закрытия
    mov bx,myfile ;Дескриптор
    int 21h ;Вызов DOS

    mov AX,4C00h ;Функция завершения
    int 20h ;Вызов DOS



    end st1

  2. По умолчанию

     
    Хотите избавиться от рекламы? Зарегистрируйтесь
  3. #2
    Тетяна.Чередніченко is on a distinguished road
    Регистрация
    16.03.2017
    Сообщений
    1
    Вес репутации
    0

    По умолчанию Re: вращение байта в файле

    Что такое «вращение байтов»?

+ Ответить в теме

Похожие темы

  1. Вращение квадрата
    у меня лаба : ""в графическом режиме (640*480) начертить квадрат со стороной 50<a<120. параметр а задать с консоли. пронумеровать каждую вершину...
    от maalik в разделе C и C++
  2. матричная экспонента, дайте исходники
    ни у кого нет pascal функции или процедуры для нахождения матричной экспоненты ? в матлабе эта функция вызывается как expm (x) где x - входная...
    от buletz в разделе Delphi и Pascal
  3. Помогоите новичку, не бейте плз. или ткните в FAQ.
    Поставил JBuilder 9. Сначала ругался на отсутствие jvm.dll в папочке C:\JBuilder9\jdk1.4\jre\bin, её собственно не было, а была...
    от mr.IL в разделе Java
  4. Дайте элементарный пример создания Dll
    Всем привет! Вот я сижу и репу чешу, делаю я несколько программ но в них есть пачка одинаковых функций которые я повторяю из одной в другую, и тут до...
    от Dr.Grizzly в разделе Delphi и Pascal

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения