Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler: DOS/Real Mode/16-bits
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
dimitrol707
1 / 1 / 0
Регистрация: 17.10.2012
Сообщений: 13
1

Даны 5 символов в стеке, вытащить из стека символы и вставить в стек только заглавные буквы

20.12.2012, 15:45. Просмотров 1149. Ответов 5
Метки нет (Все метки)

Даны 5 символов в стеке, вытащить из стека символы и вставить в стек только заглавные буквы. Я вот сделал не много а вот как проверить на заглавные буквы я не знаю, прошу помочь
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
TITLE Z_Stack
CODE_SEG SEGMENT
    ASSUME CS:CODE_SEG,DS:CODE_SEG,ES:CODE_SEG
    ORG 100H
;use16                 
org 100h   
START   PROC 
     
  
    mov ax,'M'   ;prisvaivaet v registr ax a
    push ax      ;zakidivaet v stek
    mov ax,'s'   ;prisvaivaet v registr ax s
    push ax      ;zakidivaet v stek
    mov ax,'S'   ;prisvaivaet v registr ax s
    push ax      ;zakidivaet v stek
    mov ax,'m'   ;prisvaivaet v registr ax m
    push ax      ;zakidivaet v stek
    mov ax,'a'   ;prisvaivaet v registr ax a
    push ax      ;zakidivaet v stek
;----------------------------------------------------
    pop ax       ;vitaskivaet iz steka
    pop bx       ;vitaskivaet iz steka
    pop cx       ;vitaskivaet iz steka
    pop dx      ;vitaskivaet iz steka
    pop si       ;vitaskivaet iz steka
    
   
    push ax      ;zapisivaet v stek
    push bx      ;zapisivaet v stek
    push cx      ;zapisivaet v stek
    push dx      ;zapisivaet v stek
    push si      ;zapisivaet v stek
    
mov cx,5          ;skolko raz vipolnyaetsya cikl
loop_1:
 
    mov ah,02h          
    pop dx         ;Vivod na ekran
    int 21h           
    loop loop_1
        
exit:
mov ah,08
int 21h
    mov ax,4C00h        
    int 21h             
 
     
CODE_SEG ENDS
     END    START
 
END
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2012, 15:45
Ответы с готовыми решениями:

Записать в стек все заглавные буквы заданного текста и вывести содержимое стека на экран
Записать в стек все заглавные буквы некоторого текста. Вывести стек на экран.

Создать третий стек из тех символов первого стека, которые есть и в первом и во втором стеке
Из двух заданных стеков, хранящих символы, создать новый стек из тех символов первого стека,...

Вводится различные символы, нужно вывести только заглавные буквы, которые стоят по две
Помогите пожалуйста!!! Вводится различные символы (!2543ФАавпвыПАваААА46лпРТ), нужно вывести только...

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

Переменные в стеке. Где хранятся? Как обрабатываются? Есть ли программный стек или только стек процессора?
Есть у меня пробелы в познаниях, хотел бы их устранить. 1. Что такое стек в самом языке С++ ? 2....

5
Mikl___
Автор FAQ
13770 / 6511 / 655
Регистрация: 11.11.2010
Сообщений: 11,737
20.12.2012, 15:51 2
dimitrol707, у строчной латинской буквы 5-ый разряд =0, у прописной латинской =1, поэтому команда test al,100000b должна спасти "отца русской демократии"
0
dimitrol707
1 / 1 / 0
Регистрация: 17.10.2012
Сообщений: 13
20.12.2012, 16:09  [ТС] 3
он у меня показывает = и циклится бесконечно

Добавлено через 4 минуты
делал еще с
Assembler
1
2
3
4
cmp al,'A'
jl start 
cmp al,'Z'
jle loop_1
тоже самое выводит
0
Mikl___
Автор FAQ
13770 / 6511 / 655
Регистрация: 11.11.2010
Сообщений: 11,737
20.12.2012, 18:16 4
dimitrol707, код приведенный тобой выбирает прописные буквы, причем с ошибкой, нужно выбирать строчные буквы, вот так
Assembler
1
2
3
4
5
   cmp al,'a'
   jb nestrochnaya_bukva 
   cmp al,'z'
   ja nestrochnaya_bukva
   and al,11011111b; делаем из строчной латинской прописную латинскую
0
dimitrol707
1 / 1 / 0
Регистрация: 17.10.2012
Сообщений: 13
20.12.2012, 18:38  [ТС] 5
Мне не нужно заменять строчную на прописную, мне просто нужно проверить символы и вывести на экран прописные в моемой случае, М и S
0
Mikl___
Автор FAQ
13770 / 6511 / 655
Регистрация: 11.11.2010
Сообщений: 11,737
20.12.2012, 18:46 6
dimitrol707,
Assembler
1
2
3
4
5
  cmp al,'A'
   jb nepropisnaya_bukva 
   cmp al,'Z'
   ja nepropisnaya_bukva
   вывод AL на экран
0
20.12.2012, 18:46
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.12.2012, 18:46

Из двух заданных стеков, хранящих символы, создать новый стек из тех символов первого стека, которые есть и в первом
Из двух заданных стеков, хранящих символы, создать новый стек из тех символов первого стека,...

Создать стек из вещественных чисел; найти максимальный элемент в стеке; организовать просмотр данных стека
Создать стек из вещественных чисел. Определить максимальный элемент в стеке. Организовать просмотр...

Дан стек символов. Преобразовать стек, оставив в нем из группы подряд идущих символов только один
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru