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

Решение примера

25.02.2013, 14:14. Показов 14013. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет всем) Ребят вот в чем проблемма: пребод дал задание решить пример и написать решения на ассемблере.
Вот пример: (20+9)-(6+4)-3

Вот код расчета:
Assembler
1
2
3
4
5
6
7
8
9
mov dl,20
mov al,9
add dl,al
mov bh,6
mov ah,4
add bh,ah
sub bh,bl
mov bl,3
sub dl,bh
Вот код вывода:
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
mov dl,20
mov al,9
add dl,al
mov bh,6
mov ah,4
add bh,ah
sub bh,bl
mov bl,3
sub dl,bh
            
mov bx,0
mov bl,al
push -1
mov cx,10
l:mov dx,0
div cx
push dx
cmp ax,0
jne l
mov ah,2h
l2:pop dx
cmp dx,-1
je ex
add dl,'0'
int 21h
ex:mov ax,4c00h
int 21h
end start
Вот весь код:
Кликните здесь для просмотра всего текста
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
; multi-segment executable file template.
 
data segment
    ; add your data here!
    pkey db "press any key...$"
ends
 
stack segment
    dw   128  dup(0)
ends
 
code segment
start:
; set segment registers:
    mov ax, data
    mov ds, ax
    mov es, ax
 
 
mov dl,20
mov al,9
add dl,al
mov bh,6
mov ah,4
add bh,ah
sub bh,bl
mov bl,3
sub dl,bh
            
mov bx,0
mov bl,al
push -1
mov cx,10
l:mov dx,0
div cx
push dx
cmp ax,0
jne l
mov ah,2h
l2:pop dx
cmp dx,-1
je ex
add dl,'0'
int 21h
ex:mov ax,4c00h
int 21h
end start

Подозреваю что ошибка в коде вывода - невыдает нужное число, а выдает 9 или 1. Помогите плиз)))
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.02.2013, 14:14
Ответы с готовыми решениями:

Решение примера
F=4589-(78-un long(X)+un int(Y))+un char(Z)+2852 F=4589-(78-1234+2121+15)+2852 mov al,78 cbw ...

Решение примера
Здравствуйте. Помогите написать программу. DX=(4*+3*)^3-(+)^2 Заранее спасибо

Решение примера
X= ((d^2 - a)^2)/(d^2 + b)) - 20 a, d, b вводятся Как написать такую программу на языке...

Решение примера
Помогите найти ошибку! пример:c-a*c/b a:-100 b:-50 c:-100 тут где то ошибка .MODEL Large,C...

3
Ушел с форума
Автор FAQ
16276 / 7601 / 1064
Регистрация: 11.11.2010
Сообщений: 13,616
26.02.2013, 06:16 2
lich-soft, ну и убожество этот ваш emu8086!
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
.model small
.data 
.code
start:  mov ax,20
    add ax,9
    mov dx,6
    add dx,4
    sub ax,dx
    sub ax,3
    mov bx,10
    mov cx,0
l:  mov dx,0
    div bx
    add dx,'0'
    push dx
    inc cx
    cmp ax,0
    jne l
    mov ah,2h
l2: pop dx
    int 21h
    loop l2
    mov ah,0
    int 16h
    mov ah,4Ch
    int 21h
end start
1
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,512
26.02.2013, 06:16 3
1
Цитата Сообщение от lich-soft Посмотреть сообщение
mov dl,20
mov al,9
загрузили в dl 20 в al 9
2
Цитата Сообщение от lich-soft Посмотреть сообщение
add dl,al
сложили результат в dl
3
Цитата Сообщение от lich-soft Посмотреть сообщение
mov bh,6
mov ah,4
загрузили в bh 6 в ah 4
4
Цитата Сообщение от lich-soft Посмотреть сообщение
add bh,ah
сложили результат в bh
5
Цитата Сообщение от lich-soft Посмотреть сообщение
sub bh,bl
вычли из bh bl
что такое bl? что в нем лежит?
даже если это описка и ты имел ввиду dl то и то не верно
по этой записи получается (6+4)-(20+9)
6

Цитата Сообщение от lich-soft Посмотреть сообщение
mov bl,3
sub dl,bh
это вообще не понятно
зачем грузить в bl если в вычитании используешь dl?

1 разберись с регистрами, ты в них запутался
2 порядок операндов в вычитании sub op1,op2
из op1 вычесть op2 и занести результат в op1
0
Клюг
7674 / 3189 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
10.06.2014, 14:06 4
Цитата Сообщение от Mikl___ Посмотреть сообщение
убожество этот ваш emu8086!
Эмо8086 — Васик, asm edition.
А для вывода достаточно двух цифр:
Assembler
1
2
3
4
5
6
7
    mov al,dl
    aam
    add ax, '00'
    xchg    ah, al
    int 29h
    xchg    ah, al
    int 29h
0
10.06.2014, 14:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.06.2014, 14:06
Помогаю со студенческими работами здесь

Решение арифметического примера
Необходимо написать программу для решения данного примера: (18+16/2)*\frac{5+8}{14-3} Вот моя...

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

Решение примера на Асемблере
Помогите !! Нада написать прогу решения примера . 8d – 9d/c На Ассемблере. С api функциями !...

Решение примера в Ассемблере
Помоги пожалуйста с решением 1)1 : 3 * 6 - (18 + 14) : 8 = 2)63 : (81 : 9) + (8 * 7 - 2) : 6 =...

Потоки, разбор примера
C:\\masm32\examples\threads\multidl\multidl.asm и его содержимое include...

Реализация арифметического примера y=x+10/2
Реализация арифметического примера y=x+10/2 Помогите написать код, в x должно заноситься значение...


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

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

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