Читайте также:
|
|
stacksg segment para stack 'Stack'
dw 32 dup(?)
stacksg ends
datasg segment para 'Data'
message db 'vvedite predlojenie: $'
string label byte
max db 50
len db?
str db 100 dup ('$')
k db 1
datasg ends
codesg segment para 'Code'
begin:
assume cs:codesg, ds:datasg, ss:stacksg, es:datasg
push ds
sub ax,ax
push ax
mov ax,datasg
mov ds,ax
mov ah,09h
lea dx,message
int 21h
mov ah, 0ah
lea dx, string
int 21h
mov bx,offset str
mov dh,k
mov dl,00
mov bh,00
mov ah,02h
int 10h
inc k
next: mov dl,[bx]
mov ah,02h
int 21h
cmp dl,0Dh
je exit
inc bx
cmp dl,' '
jne next
mov dh,k
mov dl,00
mov bh,00
mov ah,02h
int 10h
inc k
jmp next
exit: mov ah, 8h
int 21h
mov ah,4ch
int 21h
codesg ends
end begin
Напишите программу, запрашивающую у оператора строку, а затем выводящую символы введенной строки на экран в обратном порядке. Выполните трассировку программы.
codesg segment para 'code'
assume cs:codesg, ds:codesg, ss:codesg, es:codesg
org 100h
begin:
call start
message db 'Vvedite stroky: ','$'
string label byte
symb db 59
real db?
all db 60 dup (?),'$'
start proc near
mov ah, 00h
mov al, 03h
int 10h
mov dh, 0
mov dl, 0
mov bh, 00
mov ah, 02h
int 10h
mov ah, 09h
lea dx, message;приглашение для ввода
int 21h
lea dx, string;записывается введенная строка
mov ah, 0ah
int 21h
mov dh, 1
mov dl, 0
mov bh, 00
mov ah, 02h
int 10h
mov bl,real
mov bh,00
mov cx,bx
m1:
mov ah,02h;выводим символы
mov dl,all[bx-1];последний символ в предложении
int 21h
dec bx
loop m1
mov ah,4ch
int 21h
start endp
codesg ends
end begin
Дата добавления: 2015-08-17; просмотров: 79 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Ввести с клавиатуры натуральное число. Найти сумму его первой и последней цифры и вывести на экран. Выполните трассировку программы. | | | Ввести с клавиатуры натуральное число. Поменять порядок следования цифр в числе и вывести на экран. |