Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

ПОМОГИТЕ ПОЖАЛУЙСТА РЕШИТЬ ЗАДАЧИ В АССЕМБЛЕРЕ!!

Илья Файзрахманов Ученик (105), открыт 1 месяц назад
Вариант 7. Напишите программу с циклическим выполнением команд
1. Дана строка из 12 символов. Выделить из строки каждый четвертый байт. Значение байтов выводить на экран.
2. Задать строку. Число символов нечетно. В строку поместить кодом символ '*› 2 раза. Разделить строку на три по разделителю. Вывести строки на экран.
3. Задать строку. Вывести на экран строку, значение третьего и седьмого байтов. Вывод производить в три строки
4. Задать строку из 12 байтов. Заменить каждый четвертый байт пробелом'. Вывести исходную строку и преобразованную
5. Задать строку, число байтов четно. Выделить из строки первую часть и вторую. Полученные строки вывести на экран в три ряда

на фото пример выполнения этих задач!
1 ответ
Батаев Дмитрий Просветленный (22905) 4 недели назад
дай ссылку на ассемблер интел.
Илья ФайзрахмановУченик (105) 4 недели назад
Илья Файзрахманов Ученик (105) есть фото, как он выглядит (если чем то поможет)
Батаев ДмитрийПросветленный (22905) 4 недели назад
Вывод 3 и седьмого символов
 section .data 
msg db "abc3def7ghij", 0ah
msg3 db " ", 0ah
msg7 db " ", 0ah
section .text
global _start

_start:
mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdx, 13
syscall

mov bl, [msg+3]
mov [msg3], bl
mov bl, [msg+7]
mov [msg7], bl

mov rax, 1
mov rdi, 1
mov rsi, msg3
mov rdx, 2
syscall

mov rax, 1
mov rdi, 1
mov rsi, msg7
mov rdx, 2
syscall

mov rax, 60
mov rdi, 0
syscall
Батаев Дмитрий Просветленный (22905) Батаев Дмитрий,
Батаев ДмитрийПросветленный (22905) 4 недели назад
остальные задания аналогичные в принципе. Ассемблер сложно, но интересно. Просто я мыслю категориями i8080 и ZX-80 а это 8 разрядные. Сейчас много групповых операций потому мой код далёк от оптимизации будет из-за отсутствия опыта )))
Батаев ДмитрийПросветленный (22905) 4 недели назад
тем более на фото примера обращение к видеопамяти идёт в наглую, как было раньше
Батаев ДмитрийПросветленный (22905) 4 недели назад
если нужно продолжить говори.
 section .data 
msg db "abc4def4ghi4", 0ah
msg4 db " ", 0ah
section .text
global _start

_start:
mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdx, 13
syscall

mov cl, 2
mov rsi, msg+3
cycle:
mov bl, [rsi]
mov [msg4], bl

push rsi
mov rax, 1
mov rdi, 1
mov rsi, msg4
mov rdx, 2
syscall

pop rsi
add rsi, 4
mov al, cl
dec al
jnz cycle

mov rax, 60
mov rdi, 0
syscall
вывод каждого четвёртого
Батаев Дмитрий Просветленный (22905) даже mov al, cl убери и вместо dec al поставь dec cl
Батаев ДмитрийПросветленный (22905) 4 недели назад
 section .data 
msg db "abc4def4ghi4", 0ah
lnt db 6;
msgendl db 0ah;
section .text
global _start

_start:
mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdx, 13
syscall

mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdx, 6
syscall

mov rax, 1
mov rdi, 1
mov rsi, msgendl
mov rdx, 1
syscall

mov rax, 1
mov rdi, 1
mov rsi, msg+6
mov rdx, 6
syscall

mov rax, 60
mov rdi, 0
syscall
ф это второе вывод двух половинок строки чётного количества
Похожие вопросы