Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 12.08.2019, 14:37   #1
Akuxupo
Новичок
Джуниор
 
Регистрация: 12.08.2019
Сообщений: 2
По умолчанию Помогите с функцией вывода символа на экран. Запутался в коде

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

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

Компилирую через nasm, а запускаю в qemu.
Akuxupo вне форума   Ответить с цитированием
Старый 12.08.2019, 14:40   #2
Akuxupo
Новичок
Джуниор
 
Регистрация: 12.08.2019
Сообщений: 2
По умолчанию

Код:
bits 16

main:
mov ax, 0
mov ss, ax

mov ax, 06c0h
mov sp, ax

mov ax, 07c0h
mov ds, ax

mov ah, 00h     
mov al, 0Dh
int 10h

Clear_memory:
mov ah, 0
mov [number_1], ah
mov [number_2], ah
mov [Flag_plus], ah

Input:
mov ah, 00h
int 16h

ASCII_to_number:
push ax

Check_number:
cmp al, 0
jae Check_flag
cmp al, '9'
jbe Check_flag

Check_plus:
cmp al, '+'
je Add_flag

Check_equally:
cmp al, '='
je Result
jmp Input

Check_flag:
pop ax
mov al, 1
cmp [Flag_plus], al
je Result_number_2
jmp Result_number_1

Add_flag:
mov al, 1
mov [Flag_plus], al
jmp Input

Result_number_1:
push ax
mov al, number_1
mov bl, 10
mul bl
pop bx
sub bl, '0'
add al, bl
mov [number_1], al
jmp Input

Result_number_2:
push ax
mov al, number_2
mov bl, 10
mul bl
pop bx
sub bl, '0'
add al, bl
mov [number_2], al
jmp Input

Result:
mov al, number_2
add [number_1], al
mov [si], al

push ax
push bx
push cx

Cx_is_1:
mov cx, 1

Div_cx:
xor ax, ax
mov al, number_1
div cx

cmp al, 9
ja Mul_cx_10
call Print

Mul_cx_10:
mov ax, cx
mov bx, 10
mul bx
mov cx, ax
jmp Div_cx

Print:
mov ah, 0Eh

Add_memory:
number_1 db 0
number_2 db 0
Flag_plus db 0

times 510-($-$$) db 0       
dw 0xAA55

_____
Код программы нужно выделять (форматировать) тегами [CODE] [/CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 12.08.2019 в 20:19.
Akuxupo вне форума   Ответить с цитированием
Старый 12.08.2019, 20:47   #3
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 26,225
По умолчанию

посмотрите на код вывода регистра AX в этом примере кода
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 13.08.2019, 05:10   #4
Nif-naf
Пользователь
 
Аватар для Nif-naf
 
Регистрация: 05.09.2016
Сообщений: 68
По умолчанию

Dos
Код:
mov dl,10;'LF'
mov ah,2h
int 21H
Немного о GoAsm.
Nif-naf вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать абстрактный базовый класс Integer с виртуальными арифметическими операциями и функцией вывода на экран. Определить производные классы Decimal (десятичное) и Binary (двоично nastyaapp Помощь студентам 2 07.01.2019 18:57
как написать программу вывода последнего символа? orda23 Общие вопросы C/C++ 16 19.03.2016 17:54
Функции операторов в с++ запутался в коде. Сергей.Ш Общие вопросы C/C++ 11 21.11.2013 12:33
PHP+JavaScript запутался в коде inevitability PHP 0 14.04.2012 16:32
Поиск символа в массиве символов функцией c++ firephenix Помощь студентам 13 20.07.2011 20:49


22:45.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.