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

Вычисление значения по формуле

09.11.2015, 18:53. Просмотров 295. Ответов 2
Метки asm (Все метки)

1 Имеется таблица шестнадцатиричных слов W размером (2´2) со следующими данными: -5635h,2326h,2A76h,0458h, и строка шестнадцатиричных байт B со следующими данными: 56h,-62h,32h,86h.
2 Написать программу вычисления Z.
3 Использовать в программе следующие режимы адресации данных в памяти: «непосредственный», «регистровый», «прямой».
Вычисление значения по формуле
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2015, 18:53
Ответы с готовыми решениями:

Вычисление значения по формуле
5. В озеро, имеющее среднюю глубину L м и площадь поверхности S кв.км, бросили кристалл поваренной...

Вычисление X в зависимости от значения символа ch по формуле
задача выполняется, НО работает, к сожалению, только по одному условию из трёх: 1. Составить...

Вычисление значения по формуле (выводится неправильный результат)
не выводит правильный результат, в чем ошибка? необходимо найти Y при X=100 y=\begin{cases}...

Вычисление по формуле
Здравствуйте, я написал программу вычисления по формуле: Y=\frac{16{A}^{2}}{{B}^{2}-7A} Но дело в...

Вычисление по формуле
Добрый вечер! Только недавно начал изучать азы ассемблера и столкнулся с такой проблемой. Нужно...

2
alexander142
0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 4
09.11.2015, 19:15  [ТС] 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
    .model small
    .stack
    .data
tabw    dw 5635h,2326h 
    dw 2A76h,0458h
tabb    db 56h,62h,32h,86h  
 Y  dw 3 dup(0)
    .code
beg:    mov AX, @data
    mov DS, AX
    mov AX, 0
    mov AX, tabw+2
    Mul tabb+2
    Add AX, tabw
    mov BX, 0
    mov BX, AX
    mov AX, 0
    mov AX, tabw+3
    Mul tabb+4
    Add AX, tabw+2
    mul BX 
    Mov BX, 0
    mov BX, AX
    mov AX, 0
    mov AX, 
    Mu
    mov Ah, 4ch
    int 21h
    end beg
Это мои наработки, но тут есть ошибки и не все понятно может кто разъяснит?)
0
alexander142
0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 4
12.11.2015, 05:17  [ТС] 3
Спасибо всем за просмотры тема закрыта задача решена!)
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
.model small
.stack 100h
.data
W dw -5635h, 2326h ; смещение 0, 2
dw 2A76h, 0458h ; 4, 6
B db 56h, -62h, 32h, 86h ; 0, 1, 2, 3
; 86h - старший бит выставлен, значит отрицательное (-7A)
Z dd ?
.code
.386
beg:
mov ax, @data ; непосредственная адресация :)
mov ds, ax
mov al, B[0] ; al = B1
imul B[2] ; ax = B1*B3
movsx eax, ax ; eax = B1*B3
movsx esi, B[1] ; esi = B2
sub esi, eax ; esi = B2 - B1*B3
neg esi ; esi = B1*B3 - B2
movsx ax, B[3] ; ax = B4
idiv B[1] ; al = B4/B2
movsx edi, al ; edi = B4/B2
movsx eax, B[1] ; eax = B2
movsx ebx, W[4] ; ebx = W21
imul ebx ; eax = B2*W21
movsx ebx, W[0] ; ebx = W11
add ebx, eax ; ebx = W11 + B2*W21
movsx eax, B[3] ; eax = B4
movsx ecx, W[6] ; eсx = W22
imul ecx ; eax = B4*W22
movsx ecx, W[2] ; eсx = W12
add eax, ecx ; eax = W12 + B4*W22
imul ebx ; edx:eax = (W11 + B2*W21)*(W12 + B4*W22)
idiv esi ; eax = (W11 + B2*W21)*(W12 + B4*W22) / (B1*B3 - B2)
; вообще делить edx:eax / esi - неправильно, результат может превысить 32бита
; если (B1*B3 - B2) достаточно мало по модулю, и тогда выйдет исключение
; но тогда и деление на ноль тоже нужно бы отслеживать, т.к. в этом случае тоже будет исключение
; так что возложим эту заботу на состовителя задания :)
imul edi ; edx:eax = (W11 + B2*W21)*(W12 + B4*W22) / (B1*B3 - B2) * (B4/B2)
mov Z, eax
mov ax, 4c00h
int 21h
end beg
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2015, 05:17

Вычисление выражения по формуле.
Здравствуйте, необходимо написать программу вычисления выражение.Здесь Алгебраическая сумма i=от 1...

Вычисление выражения по формуле.
Составить программу, вычисляющую значение арифметического выражения. Результат выведите в...

Вычисление выражения по формуле.
Составить программу на языке Assembler для вычисления нижеследующего выражения Y= A^2*X-B/C*X+8D...


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

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

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