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

Помогите с программой на TASM

Нужно создать символьный рядок длинной 7 символов и разместить поочередно символы А и Б.
Есть прототип кода (ниже)

А вот дальше я застрял.. .

Datas segment

Simvol db «7»

String db 3 dup(«8»)

String db $

;0Dh – символ возвращения каретки (Carriage Return),

;0Ah - символ перевода ряда

CR_LFdb 0dh,0ah, '$'

Datas ends

Codes segment

Assume cs:Codes,ds:Datas

First:

mov ax, Datas

mov ds, ax

mov ah, 40h;Подготовка и

mov bx, 1; вывод

mov cx, 3; выходящего ряда String

lea dx, String; методами DOS

int 21h

mov ah, 9h; Выведение на екран

mov dx, offset CR_LF;перевод курсора на

int 21h;следующий рядок

mov al, Simvol; Размещение

mov String, al; символа

mov String+1, al; в позиции рядка

mov String+2, al

mov ah, 40h; Подготовка

mov bx, 1; і вывод

mov cx, 3; итогового ряда

lea dx, String; методами DOS

int 21h

mov ah, 4ch; Возвращение

int 21h; в среду DOS

Codes ends

end First
Za
Zaebos
95
> создать символьный рядок длинной 7 символов
Может быть "создать символьную строку длиной 7 символов.
Вы попробуйте произнести, то что написали, с правильными ударениями и понять смысл этого. (Для справки, прилагательное "длинный" в творительном падеже женского рода (длинной) имеет ударение на звук "и", а существительное "длина" в (творительном падеже "длиной") имеет ударение на звук "о").
Очень длинной длиной и не очень короткой шириной. xD

Теперь о программе. Вам требуется именно создать строку? Т.е. программно выделить под неё динамическую память в куче или достаточно просто разместить символы в зарезервированной при линковке области сегмента данных?
Выводить в окно терминала вам обязательно нужно функцией записи в файл?

Datas segment
  String db 7 dup (?)
  CR_LF db 13, 10
  Prompt db 'Для завершения работы нажмите любую клавишу...'
Datas ends

Codes segment
    assume cs:Codes, ds:Datas, ss:Stck
First:
    mov ax, Datas
    mov ds, ax
    mov es, ax
    mov cx, 7
    mov al, 'А'
    lea di, String
Repeat:
    stosb
    xor al, 1
    loop Repeat

    mov cx, 7
    lea dx, String
    call Print
    mov cx, 2
    lea dx, CR_LF
    call Print
    mov cx, 46
    lea dx, Prompt
    call Print
    mov ah, 8
    int 21h
    mov ah, 4Ch
    int 21h

Print proc
    mov ah, 40h
    mov bx, 1
    int 21h
    ret
Print endp

Codes ends

Stck segment stack
  dw 100h dup (?)
Stck ends

    end First
Олег Лунев
Олег Лунев
51 590
Лучший ответ