0 / 0 / 0
Регистрация: 19.01.2012
Сообщений: 7
1

Напишите программу для подсчёта суммы (не количества!) мест, на которых во введенной строке стоит буква "б"

20.01.2012, 03:01. Показов 1057. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
помогите пожалуйста с 2-мя программами (по возможности TASM)! Заранее спасибо

1.Напишите программу для подсчёта суммы (не количества!) мест, на которых во введенной строке стоит буква "б". Выведите полученное значение на экран.

2. В программе имеется циклический счётчик, считающий от 0 до 255. В центре экрана постоянно выводится символ «*». Каждую секунду атрибут вывода символа меняется на значение счетчика. Счетчик продолжает считать. Для подсчёта числа тиков таймера использовать вектор 1Ch.

Добавлено через 7 часов 10 минут
вот сама написала
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
53
data segment
IN_STR db 10, ?, 10 dup (?) 
beg db 0dh, 0ah, 'vvedite stroku:', 0dh,0ah, '$'
feg db 0dh, 0ah, 'kol-vo simvolov:', 0dh,0ah, '$'
data ends
CODE segment
assume cs: code, ds: data
start: mov ax, data 
mov ds, ax
xor bx, bx
 
;ВВОД строки
lea dx,beg  ; адрес строки  в dx
mov ah,09h  ; номер функции  в аh
int 21h         ; вызов функции
 
 
        lea dx, IN_STR
        mov ah, 0ah
         int 21h
;обработка
        xor ah, ah      ; обнуление старшего байта AX
        lea bx, IN_STR+2 ; адрес начала введённой строки
        xor cx, cx
        mov cl, IN_STR+1 ; количество введенных символов
BB:     mov al, [bx]    ; очередной символ строки 
        cmp al,'b'  ; равно b?
        je AA       ; да
        jmp CC
        
AA:     mov dl,bl
        add dl,dl 
        jmp CC
 
 
CC:         inc bx      ; получить очередной символ строки
        loop BB
        
        lea dx,feg  ; адрес строки  в dx
        mov ah,09h  ; номер функции  в аh
        int 21h         ; вызов функции
 
        
                    
        mov ah, 02h         ; номер функции
        int 21h 
        
        mov ah, 01h
        int 21h
quit: mov ax, 4c00h                 ; код завершения 0
int 21h                     ; выход в dos
code ends
end start
не получается положить нужную сумму в регистр dl, чтобы вывести её на экран
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.01.2012, 03:01
Ответы с готовыми решениями:

8. Написать программу для подсчета суммы мест, на которых в словах текста стоит заданная буква
ПОМОГИТЕ ПОЖАЛУЙСТА! В ПАСКАЛЬ

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

Подсчет суммы мест, на которых в словах текста стоит заданная буква
написать программу для подсчета суммы мест на которых в словах текста стоит заданная буква

Подсчет суммы мест, на которых в словах текста стоит заданная буква
Добрый день) Помогите пожалуйста решить такую задачу: Написать программу для подсчета суммы...

Turbo Pascal -> C++ (подсчет суммы мест, на которых в словах текста стоит заданная буква)
Задание. Написать программу для подсчета суммы мест, на которых в словах текста стоит заданная...

1
15 / 22 / 6
Регистрация: 13.10.2011
Сообщений: 167
20.01.2012, 05:38 2
сумма мест символов "б"
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
.386
    .model flat, stdcall
    option casemap :none
    include \masm32\include\windows.inc
    include \masm32\include\user32.inc 
    include \masm32\include\masm32.inc
    include \masm32\include\kernel32.inc
    include \masm32\macros\macros.asm
    includelib \masm32\lib\user32.lib 
    includelib \masm32\lib\masm32.lib
    includelib \masm32\lib\kernel32.lib
Bsize equ 40
Bsize2 equ 10
.data
buf db Bsize dup(?)
buf2 db Bsize dup(?)
ifmt db "%d",0
stdout dd ?
stdin dd ?
cRead dd ?
cWritten dd ?
SizeLen dd ?
Sum dd 0
msg db "Enter a String",0dh,0ah
msg2 db "Sum of Position Simbols",0dh,0ah
.code
start:
invoke GetStdHandle,STD_OUTPUT_HANDLE
mov stdout,eax
invoke GetStdHandle,STD_INPUT_HANDLE
mov stdin,eax
invoke WriteConsoleA,stdout,ADDR msg,SIZEOF msg,ADDR cWritten,NULL
invoke ReadConsole,stdin,ADDR buf,Bsize,ADDR cRead,NULL
xor eax,eax
Call Lenght
next:
cmp esi,SizeLen
jae after
cmp buf[esi],0A1h
jz zero
inc esi
jmp next
zero:
add Sum,esi
inc esi
jmp next
loop next
 
after:
invoke WriteConsoleA,stdout,ADDR msg2,SIZEOF msg2,ADDR cWritten,NULL
invoke wsprintf,ADDR buf2,ADDR ifmt,Sum
invoke WriteConsoleA,stdout,ADDR buf2,Bsize2,ADDR cWritten,NULL
invoke ExitProcess,0
 
 
 
Lenght proc
cmp buf[esi],0
jnz nzero
sub eax,2
mov SizeLen,eax
xor esi,esi
xor eax,eax
ret
nzero:
inc eax
inc esi
jmp Lenght
Lenght endp
end start
Вложения
Тип файла: zip исходники12.zip (2.1 Кб, 8 просмотров)
1
20.01.2012, 05:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.01.2012, 05:38
Помогаю со студенческими работами здесь

Программа для подсчета общего количества слов во введенной строке, а также количества целых чисел среди них
Помогите, пожалуйста, написать программу для подсчета общего количества слов во введенной строке,...

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

Напишите программу подсчета количества элементов, абсолютная величина которых превосходит заданное число b
Задана матрица A. Напишите программу подсчета количества элементов, абсолютная величина которых...

Определить номера мест, на которых в слове стоит последняя буква
решите задачу по строкам с#

Подсчитать сумму мест, на которых в словах текста стоит заданная буква
Тема файловый ввод и вывод , прога нужна для Borland c++. Написать программу для подсчета суммы...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru