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

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

19.12.2017, 20:24. Просмотров 342. Ответов 1
Метки нет (Все метки)

Пытаюсь записать регистр BL (где хранится количество единиц в двоичной записи числа) в переменную buf, а затем вывести. Программа в итоге просто ничего не выводит. Что я делаю не так?

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
71
72
73
74
75
76
77
78
.model small    
.stack 100h 
.data       
 
mes db 'Input number: ',13, 10, '$'
errorMes   db 13,10, 'Symbol not correct!$'
result db 13, 10, 'Result: $'
 
buf db 1 dup (?), '$' ; строка для вывода кол-ва единиц в числе
 
.code
start:
    mov ax, @data
    mov ds, ax
    
    mov dx, offset mes
    mov ah,09h
    int 21h
    
    mov ah,01h
    int 21h
    cmp al,30h  ; если введен неверный символ <0
        jl er
        cmp al,39h  ; если введен неверный символ >9
        ja er
    
    sub al,30h ; в AL число, в котором необходимо посчитать кол-во единиц в двоичном представлении
    
    xor bx,bx ; в BX будем записывать кол-во единиц
    mov cx,8
 
; цикл для подсчета единиц
lp:
    rol al,1 
    jnc bit0
    inc bx
    
bit0:
    loop lp
    
    mov dx,offset result       
        mov ah,9
        int 21h
    
; здесь пытаюсь записать значение регистра BX в buf
    std
    lea di,buf
    
    mov ax,bx
    mov cx,10
lp1:
    xor dx,dx
    div cx
    
    xchg ax,dx
    add al,'0'
    stosb
    xchg ax,dx
    or ax,ax
    jne lp1
 
;вывод buf
    mov ah,9
    lea dx,[di]
    int 21h 
    
    jmp ex
    
er:
    mov dx,offset errorMes       
    mov ah,9
    int 21h
    
ex:
    mov ax, 4C00h
    int 21h
 
end start
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2017, 20:24
Ответы с готовыми решениями:

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

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

Вывод значения регистра на экран
Помогите пожалуйста разобраться с программой которая выводит значение(десятичное) регистра ax на...

[MASM] Вывод значения переменной (или содержимого регистра) на экран
Здравствуйте! По очень простому вопросу никак не могу найти ответ. Например пара фрагментов:...

Вывод значения регистра флагов в двоичной системе счисления без использования прерывной DOS и BIOS
Завтра экзамен, препод оказался очень добрым и выдал билет за день, что бы лучше подготовиться) но...

1
ФедосеевПавел
Модератор
4247 / 2337 / 939
Регистрация: 01.02.2015
Сообщений: 7,726
19.12.2017, 21:21 2
Для применения stos нужно настраивать es.

Добавлено через 2 минуты
В строке 64 в dx загрузится не di, а содержимое ячейки памяти с адресом, равным di.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.12.2017, 21:21

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

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

Вывод регистра ax на экран
Здраствуйте. Помогите пожалуйста с задачей по асемблеру в TASM. Написать программу, которая...


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

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

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