Другие языки программирования и технологии

вопрос по Ассемблеру

>Опишите пожалуйста раздел .DATA
Хоть какой-то намёк на компилятор. К сожалению строку .data в заголовке секции/сегмента данных используют TASM, FASM, MASM, YASM, NASM.
Однозначно определить компилятор по этому слову не получится.
Предположим, что это TASM или MASM. Процессор, вероятнее всего, Intel x86-совместимый. А какой точнее? 16-, 32- или 64-разрядный?
Программа для DOS или Windows? (tasm и masm могут создавать программы только для этих ОС. ) Если для Windows, то оконное или консольное приложение?
Вы уже столько вопросов по Ассемблеру задали и до сих пор не выяснили подо что же пишите программу.

>...и кусок кода с вводом строки и зиписи ее в файл
Т. е. написать всю программу.

16-разрядное приложение MS DOS:

.model small
.stack 100h

.data
MaxLen equ 79
Prompt db 'Введите строку: ',13,10,36
FileName db 'output.txt',0
Buffer db MaxLen + 1
LenStr db ?
String db MaxLen + 1 dup (?)

.code
N78199918:
    mov si,@data
    mov ds,si
    lea dx,Prompt
    mov ah,9
    int 21h
    lea dx,Buffer
    inc ah
    int 21h
    mov ah,3Ch
    lea dx,FileName
    mov cx,0
    int 21h
    mov bx,ax
    mov ah,40h
    lea dx,String
    mov cl,LenStr
    xor ch,ch
    int 21h
    mov ah,3Eh
    int 21h
    mov ah,4Ch
    int 21h
    end N78199918

32-разрядное консольное приложение Windows:

.386
.model flat, stdcall
option casemap:none

include windows.inc
include kernel32.inc
include user32.inc
includelib kernel32.lib
includelib user32.lib

.stack 100h

.data
MaxLen equ 79
Prompt db 'Введите строку: ',13,10,0
FileName db 'output.txt',0

.data?
hStdIn dd ?
hStdOut dd ?
hFile dd ?
LenStr dd ?
String db MaxLen dup (?)

.code
N78199918:
    invoke GetStdHandle,STD_INPUT_HANDLE
    mov hStdIn,eax
    invoke GetStdHandle,STD_OUTPUT_HANDLE
    mov hStdOut,eax
    invoke lstrlenA,addr Prompt
    invoke WriteConsole,hStdOut,addr Prompt,eax,0,0
    invoke ReadConsole,hStdIn,addr String,MaxLen,addr LenStr,0
    invoke CreateFile,addr FileName,GENERIC_WRITE,NULL,\
      NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL
    mov hFile, eax
;OemToCharBuff - чтобы не было вопросов, почему Блокнот вместо
;русских букв показывает нечитаемые символы
    invoke OemToCharBuff,addr String,addr String,LenStr
    invoke WriteFile,hFile,addr String,LenStr,addr LenStr,NULL

    invoke CloseHandle,hFile
    invoke ExitProcess,0
    end N78199918

P.S. В обеих программах не проверяются никакие ошибки ввода-вывода в том числе файловых операций.
Введённая строка записывается в файл output.txt, который создаётся в одном каталоге с исполняемым файлом программы.
Канат Байсериков
Канат Байсериков
51 590
Лучший ответ
Ассемблер для AVR подойдёт?
Алексей Махов
Алексей Махов
75 953
icq 118024746