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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.01.2023, 17:04   #1
alonil
Пользователь
 
Регистрация: 14.01.2023
Сообщений: 38
По умолчанию Нижняя граница на ввод строки не получается.

Эта программа должна вводить строку не менее 10 символов.После она копирует второй и четвертый симлов 3 раза.
Код:
.model small
data segment
    zadanie db 'Programma kopiryet vtorou i chetvertiu simvol 3 raza.',10,13,'$'
    message db 'Vvedite stroky ne menee 10 simvolov.',10,13
    mess_len = $- message
 
    Oshibka db 'Error: Nedostatochnoe kolichestvo vvedeno simvolov!'
    error_len  = $-Oshibka
     Vopros db 'Nachnete zanovo vvod ili viudite iz programmi?   Enter/Probel' ,13,10
     vopr_len= $ - Vopros
    s1 db 256 dup(?)
    s1_len dw ? 
    s2 db 7 dup(?)
    new_line db 10,13  ;Enter
data ends
 
stk segment stack
   db 256 dup(?)
stk ends
code segment 
  assume cs:code,ds:data,ss:stk
  start:
     mov ax,data
     mov ds,ax
    
     mov ah,09h 
     mov dx,offset zadanie
     int 21h
Vvod:     
     mov ah,40h 
     mov bx, 1
     mov cx,mess_len 
     lea dx, [message]
     int 21h
     
     mov ah,40h
     mov bx,1
     mov cx,2
     lea dx, [new_line]
     int 21h
     

     mov ah, 3Fh
     mov bx,0 
     mov cx,[s1_len]
     lea dx,s1
     int 21h

   
     mov ah,0

     
      
     mov al, s1[3]
     push ax
     push ax
     push ax
     
     mov al, s1[1]
     push ax
     push ax
     push ax
  
     
    
     mov cx, 6 
     mov si, 0
     for:  
       pop ax
       mov s2[si], al
       inc si
       loop for
       
 
    mov ah,40h
    mov bx,1
    mov cx, [s1_len] 
    lea dx, [s1]
    int 21h
     
    mov ah,40h
    mov dx,1
    mov cx,2
    lea dx, new_line
    int 21h
     
     
    mov ah,40h
    mov bx,1
    mov cx,6
    lea dx, [s2]
    int 21h
    
      mov ah,40h
     mov bx,1
     mov cx,2
     lea dx, [new_line]
     int 21h
    jmp Prodolg_li
_break: 
    mov ah,40h
    mov bx,1
    mov cx,[error_len] 
    lea dx, [Oshibka]
    int 21h
    
    mov ah,40h
     mov bx,1
     mov cx,2
     lea dx, [new_line]
     int 21h
Prodolg_li:    
      mov ah,40h 
     mov bx, 1
     mov cx, vopr_len
     lea dx, Vopros
     int 21h
     
    mov al,0
    mov ah,00h
    int 16h
    Probel:
    cmp al,32
    jz Exit
    
    mov ah,40h
    mov dx,1
    mov cx,2
    lea dx, new_line
    int 21h 
    jmp Vvod
Exit:    
    mov ah,4ch 
    int 21h 
     
code ends
end start
alonil вне форума Ответить с цитированием
Старый 20.01.2023, 18:18   #2
alonil
Пользователь
 
Регистрация: 14.01.2023
Сообщений: 38
По умолчанию

Уже не надо.Понял как.
alonil вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать верхняя или нижняя кнопка была нажата в sUpDown? artemavd Общие вопросы Delphi 2 25.04.2012 22:37
Программа на языке "Ассемблер" - ввод строки, анализ длины строки, добавление точки в конец строки Алексей_2012 Помощь студентам 1 05.04.2012 11:26
Граница из изображений ULTIMITE HTML и CSS 17 11.06.2011 15:30
граница проверки простого числа fs444 Общие вопросы C/C++ 4 24.03.2010 20:11