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

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

17.03.2014, 02:30. Просмотров 354. Ответов 1
Метки нет (Все метки)

Имеется процедура, в ней в регистр AX помещается результат выражения, как его вернуть с процедуры, чтобы вывести на экран ?
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
TITLE   PROGNAME (EXE)
;----------------------------------------
STACKSG SEGMENT PARA STACK 'Stack'
    DW  32 DUP(?)   
STACKSG ENDS
;----------------------------------------
DATASG  SEGMENT PARA 'Data'
        A       DW (1)
        B       DW (2)
        C       DW (3)
        X       DW (4)
        ;Y      DW (5)
        AUX     DW (?)
        AUX2    DW (?)
        AUX3    DW (?)
        AUX4    DW (3)
        UVAR    DW (?)                  ; 
        ASCVAL  DB '      ','$'         ; 
        EXIT    DW (?)                  ; 
DATASG  ENDS
;----------------------------------------
CODESG  SEGMENT PARA 'Code'
BEGIN   PROC    FAR
        ASSUME  CS:CODESG, DS:DATASG, SS:STACKSG
        PUSH    DS
        XOR     AX,AX                   ;
        PUSH    AX                      ;   *
        MOV     AX,DATASG               ; 
        MOV     DS,AX                   ;    
        LEA     SI,ASCVAL
;----------------------------------------
;y = a^2*x^2 \ (b-2) - 3*a^3*x^3 + (x + a^3) \ 5
;----------------------------------------
        CALL    SCHET                   ;вызов процедуры подсчета
        MOV     UVAR,AX                 ; 
;----------------------------------------
; 
;----------------------------------------
SCHET PROC  NEAR
    MOV AX, A
    IMUL A                              ;A^2
    MOV AUX, AX                         ;AUX СОДЕРЖИТ A^2
    MOV AX, X
    IMUL X                              ;X^2
    IMUL AUX                            ;A^2*X^2
    MOV AUX2, AX                        ;AUX2 СОДЕРЖИТ A^2*X^2
    MOV AX, B
    MOV AUX, AX                         ;AUX СОДЕРЖИТ B
    SUB AUX, 2                          ;AUX СОДЕРЖИТ B-2
    MOV AX, AUX2                    
    DIV AUX
    MOV AUX, AX                         ;AUX СОДЕРЖИТ A^2*X^2 \ (B-2)
    MOV AX, A                           
    IMUL A                      
    IMUL A                              ;A^3
    MOV AUX2, AX                        ;AUX2 СОДЕРЖИТ A^3
    MOV AX, X
    IMUL X
    IMUL X                              ;X^3
    IMUL AUX2                           ;A^3*X^3
    IMUL AUX4                               ;3*A^3*X^3
    MOV AUX2, AX                        ;AUX2 СОДЕРЖИТ 3*A^3*X^3
    MOV AX, A           
    IMUL A
    IMUL A                              ;A^3
    ADD AX, X                           ;X+A^3
    MOV AUX4, 5
    DIV AUX4                                ;(X+A^3) \ 5
    MOV AUX3, AX                        ;AUX3 СОДЕРЖИТ (X+A^3) \ 5
    MOV AX, AUX
    SUB AX, AUX2
    ADD AX, AUX3                        ;все выражение в AX
    RET
SCHET ENDP
;----------------------------------------
; 
;----------------------------------------
 
        CALL    SCRLIN                  ; 
        RET                             ; 
BEGIN   ENDP
;
;****************************************
SCRLIN  PROC    NEAR
;----------------------------------------
; *
;----------------------------------------
        MOV     AX,0600H
        MOV     BH,07
        MOV     CX,0000
        MOV     DX,184FH
        INT     10H
;----------------------------------------
;
;----------------------------------------
        MOV     AH,02
        MOV     BH,00
        MOV     DX,0000
        INT     10H
;----------------------------------------
; 
;----------------------------------------
        MOV     CX,10
        MOV     AX,UVAR
    CMP AX,0000
        JNS     L10
        MOV     BH,2DH
        MOV     [SI],BH
        NEG     AX
L10:    ADD     SI,5
L15:    CMP     AX,10
        JB      L20
        XOR     DX,DX
        DIV     CX
        OR      DL,30H
        MOV     [SI],DL
        DEC     SI
        JMP     L15
L20:    OR      AL,30H
        MOV     [SI],AL
;----------------------------------------
; 
;----------------------------------------
        MOV     AH,09
        LEA     DX,ASCVAL
        INT     21H
;----------------------------------------
; 
;----------------------------------------
        MOV     AH,00
        INT     16H
        RET
SCRLIN  ENDP
;****************************************
CODESG  ENDS
        END     BEGIN
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2014, 02:30
Ответы с готовыми решениями:

Объяснить результат и вывести на экран результат логического выражения
Объяснить результат и вывести на экран результат логического выражения T = S для заданных значений...

Вернуть результат из метода Encode вывести на экран
class Program { static void Main(string args) { string input,...

Как вывести результат в документ по процедуре Завершить
&НаСервере Процедура ВпередНаСервере() Объект.ТекущийВопрос=Объект.ТекущийВопрос+1;...

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

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

1
Mikl___
Автор FAQ
13304 / 6377 / 629
Регистрация: 11.11.2010
Сообщений: 11,537
17.03.2014, 06:01 2
Цитата Сообщение от Fene4ka_ Посмотреть сообщение
в регистр AX помещается результат выражения, как его вернуть с процедуры, чтобы вывести на экран ?
Fene4ka_,
прочитай закрепленную тему http://www.cyberforum.ru/assembler/thread54461.html http://www.cyberforum.ru/cgi-bin/latex.cgi?\rightarrow "Вывод целого знакового, либо беззнакового числа."
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.03.2014, 06:01

Вывести результат вычисления выражения, записанного в текстовом файле, на экран
Создать приложение через которую можно открыть текстовой файл. в котором будет написано 7+3 и...

Как преобразовать большое число int64 в VARIANT чтобы затем его вывести на экран
Работаю с WMI,получаю размер диска. Тип данных int64 (согласно докам MSDN), после операции Get...

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


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

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

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