Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для начинающих > ввод 2х строк и вывод их на экран


Автор: polindroma 13.12.2011, 15:03
Не получается вывести введенные 2е строки на экран.Выводит мусор.
Цитата


vivod macro str
 push dx
 mov ah,09h
 lea dx,str
 int 21h
 pop dx
endm

kursor_ macro
  mov ah,2        ;Перейдем на другую строку.
  mov dl,0dh
  int 21h
  mov dl,0ah
  int 21h 
endm

.model small
.stack 100h
.data 
        mesg db "vvedite stroku iz 10 simvolov:$"
        Buffer db 11
        Entered db (?)
        String db 11 dup (?)
        String1 db 11 dup (?)

.code 
assume cs:@code, ds:@data, es:@data
start:
  mov ax,03;ochistka ekrana
  int 10h

  mov ax,@data
  mov ds, ax

  vivod mesg
  ; ввод
  mov dx,offset buffer ; аддрес буфера
  mov ah,0ah
  int 21h ; принимаем строку
 
  xor bx,bx       ;Запишем '$' в конце строки.
  mov bl,Entered
  mov String[bx],'$'
  
  kursor_ 
        
  vivod mesg
  ; ввод
   mov dx,offset buffer ; аддрес буфера
   mov ah,0ah
   int 21h ; принимаем строку
 
   xor bx,bx       ;Запишем '$' в конце строки.
   mov bl,Entered
   mov String1[bx],'$'

   kursor_  
  
  mov ah,09h
  lea dx,String
  add dx,2
  int 21h
 
 ; vivod String
  kursor_
  vivod String1
  
  mov ah,10h      ;
  int 16h
                
quit: 
  mov ax, 4c00h
  int 21h

end start

И как посмотреть,что находиться в самих строках.Мне с ними надо выполнять операции(я написала программу для строк,которые были прописаны в коде.А меня попросили переделать лабораторную,чтоб строки вводились с клавиатуры).

Автор: scuter 15.12.2011, 17:45
ты хотя бы одну строку выведи
Код

d_str  db  'qwertyuiop'
str_len=$-d_str
cld
mov SI, d_str
mov CX, [str_len]
agn:
lodsb
mov AH, 0Eh
int 10h
loop agn

Автор: polindroma 16.12.2011, 01:21
спасибо,но я уже разобралась.вывести одну строку было не проблемой,тем более,когда она была "забита" в программе.надо было считать 2 строки,которые пользователь вводит
Цитата

   vivod mesg;
   mov ah,0ah
   mov dx,offset parlist1 
   int 21h 
 
   xor bx,bx       
   mov bl,Entered1
   mov str1[bx],'$'
   
   lea si,str1
   kursor_
   
   vivod mesg;
   
   mov dx,offset parlist2  
   mov ah,0ah
   int 21h 
 
   xor bx,bx      
   mov bl,Entered2
   mov str2[bx],'$'

   lea di,str2

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)