Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 15.02.2020
Сообщений: 9
1
emu8086

Ввести три числа, вычислить выражение по формуле, вывести результат

22.03.2021, 23:27. Показов 1382. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите, что сюда нужно добавить чтобы он выводил на экран нормальные числа. Мне нужно A=88+1-18=71, а получается...просто 1, пробовал с однозначными числами типо: A=8+1-4=4 и получалось правильно, как только перешел на двузначные начались проблемы
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
  org 100h
; example for addition and substraction
.data
a db 0ah,0dh,"enter 1st no :$"
b db 0ah,0dh,"enter 2nd no : $"
d db 0ah,0dh,"enter 3nd no : $" 
c db 0ah,0dh,"result : $"
 
.code
mov ax,@data
mov ds,ax 
 
 lea dx,a
    mov ah,09h
    int 21h 
 
    mov ah, 01
    int 21h 
    lea  dl, ah ;
    int 21h
    
    mov bl,al 
    
    lea dx,b
    mov ah, 09h
    int 21h    
    
    mov ah,01
    int 21h   
    
    lea  dl, ah    ;  
    int 21h
    
    mov bh,al  
    
     lea dx,d
    mov ah,09h
    int 21h 
 
    mov ah, 01
    int 21h 
    
    lea  dl, ah    ;  
    int 21h 
    
    mov cl,al
    
    sub bh, 30h
    sub bl, 30h 
    sub cl, 30h 
      
    
    lea dx,c
    mov ah, 09h
    int 21h 
  
       
    
    add bh,bl 
    sub bh,cl
    add bh, 30h
    
    mov dl,bh  
    mov ah, 02
    int 21h  
 
    ret
Миниатюры
Ввести три числа, вычислить выражение по формуле, вывести результат  
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.03.2021, 23:27
Ответы с готовыми решениями:

Ввести три числа. Вычислить ||a-b|-c|, не используя стандартные функции. Вывести результат
Ввести три числа. Вычислить ||a-b|-c|, не используя стандартные функции. Вывести результат

Ввести три вещественных числа в 10-ую систему счисления. перемножить и вывести результат в 7-ой системе счисления
Ввести три вещественных числа в 10-ую систему счисления. перемножить и вывести результат в 7-ой...

Вычислить 4!+7!+2!, используя функцию вычисления факториала. Ввести три числа. Вывести первые цифры чисел. использовать процедуру замены числа на его
1)Вычислить 4!+7!+2!, используя функцию вычисления факториала. 2)Ввести три числа. Вывести первые...

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

2
Модератор
Эксперт по электронике
8477 / 4335 / 1643
Регистрация: 01.02.2015
Сообщений: 13,462
Записей в блоге: 8
23.03.2021, 00:08 2
CaptainRioNew, вы используете emu8086, в его состав входят библиотеки ввода и вывода чисел.
У меня нет emu8086, поэтому точно сказать не смогу.
Думаю, что должны быть примеры и справка по F1.

Кроме того, можно сделать собственное самодельное преобразование строки в число.
Предположим, что введена строка "725" длиной 3 символа (при помощи ah=0Ah int 21h).
Обнуляем результирующее число (инициализируем нулём).
В цикле с параметром (loop) просматриваем строку слева направо.
1. Из текущего символа вычитаем код символа "0":
"7"-"0"=37h-30h=07h
2. Результирующее число умножаем на 10
3. Прибавляем к результату полученную ранее разницу кодов символов
4. Если строка ещё не закончилась - переходим к п.1 (к рассмотрению следующего символа)

Можно добавить отслеживание некорректного ввода, переполнения разрядной сетки.

Есть примеры в закреплённой теме
Ввод и вывод чисел в различных системах счисления
Тут и готовые подпрограммы пояснения по применению.

Добавлено через 5 минут
Ввод и вывод макросами emu8086 пояснён
http://www.avprog.narod.ru/pro... al_05.html
0
Модератор
978 / 536 / 280
Регистрация: 10.11.2019
Сообщений: 1,133
24.03.2021, 19:50 3
Лучший ответ Сообщение было отмечено CaptainRioNew как решение

Решение

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
; Тестировалась в emu8086 COM файл
 
org 100h
 
start:jmp beg
 
include "emu8086.inc"
ma db 0ah,0dh,"enter 1st no : ",0
mb db 0ah,0dh,"enter 2nd no : ",0
mc db 0ah,0dh,"enter 3nd no : ",0
md db 0ah,0dh,"result       : ",0
crlf db 13,10,0
vara    dw 0
varb    dw 0
varc    dw 0
result  dw 0
beg:push cs ; установка сегментных регистров
    pop ds
    push cs
    pop es
    
    mov si,offset ma ; ввод данных
    call print_string
    call scan_num
    mov vara,cx
 
    mov si,offset mb
    call print_string
    call scan_num
    mov varb,cx
  
    mov si,offset mc
    call print_string
    call scan_num
    mov varc,cx
 
    mov ax,vara ; вычисление result=vara+varb-varc
    add ax,varb
    sub ax,varc
    mov result,ax
 
    mov si,offset md ; печать результата
    call print_string
    mov ax,result
    call print_num
    call newline
 
    mov ah,0
    int 16h
    int 20h ; выход в Dos
 
newline:
    mov si,offset crlf
    call print_string
    ret
 
; подключаемые подпрограммы
 
   DEFINE_SCAN_NUM
   DEFINE_PRINT_STRING
;   DEFINE_PTHIS
;   DEFINE_GET_STRING
;   DEFINE_CLEAR_SCREEN
   DEFINE_PRINT_NUM
   DEFINE_PRINT_NUM_UNS
1
24.03.2021, 19:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.03.2021, 19:50
Помогаю со студенческими работами здесь

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

Вычислить выражение и вывести результат на экран
Создайте программу, которая вычислит выражение 14/209+14ˣ(29-13²+14/3) и выведет результат на...

Вычислить выражение и результат вывести на экран
выражение такое (2*С/D+2)/(D-A*A-1) писал на турбо ассемблере.Вроде не ругается при компиляции....

Вычислить выражение и вывести результат на экран
Памагити) Ничего не понимаю, нужно решить выражение и вывести результат на экран ( само число )...

Ввести три числа. Вывести первые цифры чисел. использовать процедуру замены числа на его первую цифру
Ввести три числа. Вывести первые цифры чисел. использовать процедуру замены числа на его первую...

Ввести три числа. Вывести последние цифры чисел. Использовать процедуру замены числа на его последнюю цифру.
1.Вычислить s=max(a,b)/min(a,c)+max(b,c). 2.Ввести три числа. Вывести последние цифры чисел....


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru