Премини към съдържанието

Препоръчан отговор


Здравейте имам малко нужда от помощ. Задачата ми е да въведа случайни букви и цифри от клавиатурата и да изкарам само цифрите и то в обратен ред. Та въпроса ми е как да премахна буквите за да останат само цифрите. Благодаря за помощта, ако има нещо, което не съм казал питайте, че за пръв път реших да търся помощ тук.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

дефинирай какво са букви или дефинирай какво са цифри и съответно да се показва или да не се показва :clown:

  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Не можах да намеря как да го направя, но утре ще попитам учителят ми как става. Все пак сега почнах да уча асемблер. Благодаря ти все пак.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
format MS64 COFF
include 'win64a.inc'

public start
extrn puts
extrn exit
extrn gets
extrn strlen

section 'data' data readable writeable
input db 64 dup ?
output db 64 dup ?

section 'code' code readable executable
start:
sub rsp, 8
fastcall gets, input
fastcall reverse
fastcall puts, output
fastcall exit, 0


proc reverse
push rsi rdi               ; запазваш неволатилните за индекси
xor edi, edi               ; нулираш единия индекс
fastcall strlen, input
mov esi, eax               ; а другия го приравняваш на дължината на входа
.up:
dec esi                    ; намаляш го с едно за да не четеш нул терминатора
mov al, [rsi + input]      ; четеш входа отзад напред
cmp al, 30h                ; проверяваш всеки символ дали е цифра
jb @f
cmp al, 39h
ja @f
mov [rdi + output], al    ; ако е цифра (между 30 и 39 шестнайстично) го записваш на изхода
inc edi
@@:
cmp rsi, 0
jne .up
mov [rdi + output], 0     ; накрая записваш нул терминатор на изхода
pop rdi rsi               ; връщаш неволатилните за да спазиш фасткол конвенцията
ret
endp       

 

  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

О не я исках готова макар, че ти благодаря, но и не е това което я търся сега започвам да уча асемблер доколкото ми я обясниха трябва да сравнявам AL с цифрите от '0' до '9' само и да ги слагам в стек


Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Регистрирайте се или влезете в профила си за да коментирате

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход

×

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите условия за ползване.