Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Дана строка из 15 символов. Разработать программу, осуществляющую круговую перестановку части букв исходной строки.

80K
27 апреля 2012 года
yamaschi
2 / / 10.04.2012
Помогите пожалуйста написать программу на ассемблере...
Дана строка из 15 символов. Разработать программу, осуществляющую круговую перестановку части букв исходной строки.
Индивидуальные задания:
5) с первого по двенадцатый по двенадцатый по два символа

Пример программы
Дана строка из четырех символов. Необходимо осуществить круговую перестановку символов строки.

STACKSG SEGMENT PARA STACK
DB 64 DUP (?)
STACKSG ENDS
DATASG SEGMENT PARA ’DATA’
STR1 DB ’1234’
STR2 DB 4 DUP (?)
DATASG ENDS
CODESG SEGMENT PARA ’CODE’
ASSUME CS:CODESG, DS:DATASG, SS:STACKSG
ENTRY PROC FAR
; Стандартная часть
PUSH DS
SUB AX,AX
PUSH AX
MOV AX,DATASG
MOV DS,AX
MOV DX,4 ; общее количество перестановок
; Переслать первый символ из STR1 в STR2
M1: LEA DI,STR1 ; загрузить в DI смещение
; первого байта из STR1
LEA SI,STR2 ; загрузить в SI смещение
; первого байта из STR3
MOV CX,3
MOV AL,[DI] ; переслать в AL первый байт из STR1
MOV [SI]+3,AL ; переслать AL в последний байт из STR2
INC DI ; DI=DI+1 – следующий символ из STR1
; переслать остаток строки STR1 в STR2
M2: MOV AL,[DI] ; в AL следующий символ из STR1
MOV [SI],AL ; переслать AL в STR2
INC DI ; DI=DI+1 – следующий символ из STR1
INC SI ; SI=SI+1 - следующий символ из STR2
LOOP M2 ; перейти на метку M2
; переслать STR2 в STR1
LEA DI,STR1
LEA SI,STR2
MOV CX,4
M3: MOV AL,[SI]
MOV [DI],AL
INC DI
INC SI
LOOP M3

DEC DX
CMP DX,0 ; Все перестановки сделаны?
JNE M1 ; Нет - идти на M1
RET
ENTRY ENDP
CODESG ENDS
END ENTRY
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог