Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
Kurtojkeee
0 / 0 / 1
Регистрация: 16.01.2016
Сообщений: 24
1

Вывод 2 значения регистра

16.05.2016, 11:31. Просмотров 356. Ответов 0
Метки нет (Все метки)

Доброго времени суток, нужна помощь, при выводе не могу вывести сразу два значения в MessgaeBox, из 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
.386
            .MODEL flat, stdcall
            option casemap:none 
 
            include /masm32/include/windows.inc
            include /masm32/include/user32.inc
            include /masm32/include/kernel32.inc
 
            includelib /masm32/lib/user32.lib
            includelib /masm32/lib/kernel32.lib
 
            include /masm32/macros/macros.asm 
            uselib masm32, comctl32, ws2_32 
            
            .data
            dano_stroka byte "i lovezzed spleep"
            mestitle db "Лабораторная работа",0
            
            .code 
start:     
            mov cx, sizeof dano_stroka
            lea edx, dano_stroka     
            mov eax, 0      ; al = количество "z", ah = до пробела
            mov ebx, 0      ; bl = проверяемый символ, bh = символов до пробела
scanChar:   
            mov bl, [edx]
            cmp ah, 0       
            jne spacePass   ; символы до пробела уже посчитаны
            cmp bl, ' '
            jne spacePass
            mov ah, bh
spacePass:          
            cmp bl, 'z'
            jne noZchar
            inc al
noZchar:
            inc edx         ; переходим к следующему символу+1
            inc bh          ; количество просмотренных символов+1
            loop scanChar
            ; в AH количество символов до пробела
            ; в AL количество символов 'z'
            invoke wsprintf,offset dano_stroka,chr$("The number of letters Z = %u"), al
            invoke MessageBox,0,offset dano_stroka,offset mestitle,MB_ICONASTERISK
            invoke wsprintf,offset dano_stroka,chr$("The number of characters up to the first space = %u"), ah
            invoke MessageBox,0,offset dano_stroka,offset mestitle,MB_ICONASTERISK
            invoke ExitProcess, 0
    
            end start
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.05.2016, 11:31
Ответы с готовыми решениями:

Вывод значения из регистра BX
Пытаюсь записать регистр BL (где хранится количество единиц в двоичной записи...

Вывод значения из регистра AX
Всем доброго времени суток, друзья! Помогите, пожалуйста, решить такую...

Вывод значения регистра на экран
Как в FASM'e вывести на экран значение какого-нибудь регистра?

Запись значения регистра в строку
Я хочу вывести содержимое регистра al в консоль. Я написал код: mov ah, 9h...

Вывод содержимого регистра на экран
Вопрос глупый, но нигде не могу найти однозначный ответ. Как мне вывести чисто...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.05.2016, 11:31

Определение значения регистра и флагов по области памяти
Помогите, пожалуйста !!! Ассемблер изучаю месяц,через два дня экзамен. Времени...

Вывод на экран содержимого регистра bx в 16-ричном виде
Добрый вечер всем. Имеется код подсчета двоичных нулей в переменной размером...

При выводе на экран десятичного значения регистра AX, получаю пустую строку
не могу понять, почему выводится пустая строка, подскажите, пожалуйста, в чем...


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

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

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