6 / 2 / 2
Регистрация: 10.12.2011
Сообщений: 97
1

Деление 32 разрядных чисел с использованием 16 разрядных регистров

14.03.2014, 22:32. Показов 3348. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.

Когда у нас одно из чисел 32 разрядное, то мы выполняем деление записывая 32 разр. число в два регистра младш. часть в AX и старшую в DX. (intel 8086)

Как выполнить деление двух 32 разрядных чисел?

Буду очень признателен..

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
TITLE TestCom
 
CODESG SEGMENT PARA 'Code'
 
ASSUME  CS:COOESG,DS:CODESG,SS:CODESG.ES:CODESG
ORG 100H        
start: 
JMP MAIN    
 buf db 10 dup(0) ; ????? ????? 10 ???? ??????????? 0 
VAR_A   DW  60001
VAR_B   DW  60000
VAR_C   DW  60000
VAR_D   DW  ?  
DOP_A   DW  0
DOP_C   DW  0  
 
 
MAIN PROC NEAR         ;(a-1)*2/(c*2+b)
 
             
           ;  
;            MOV AH,01h
;            INT 21h
;            SUB al,30h 
;            XOR ah,ah
      
       ;     MOV VAR_B, AX
                  
            MOV AX, VAR_A 
            SUB AX, 1
            MOV CX, 2
            MUL CX  
            
            MOV DOP_A, DX  
            
            MOV DX, 0 
            
            MOV CX , AX  
                         
                         
            MOV AX, VAR_C
            MOV BX , 2
            MUL BX   
            
            MOV DOP_C, DX     ;;;;   
            MOV DX, 0 
            
            
            ADD AX , VAR_B       
            ADC DX , 0
              
              
            ADD DOP_C, DX
           
            MOV DX, 0
              
            MOV BX , AX
            MOV AX , CX
            
              
            MOV DX, DOP_A    
            
                 
           ; MOV AX, DOP_C
            
            DIV BX   
 
;RET
 
 
MAIN ENDP 
 
 outint  proc    near 
        push    cx 
        push    dx 
        push    bx 
        push    ax 
; I?iaa?yai ?enei ia ciae. 
        test    ax, ax 
        jns     short @oi1 
; Anee iii io?eoaoaeuiia, auaaaai ieion e inoaaei aai iiaoeu. 
        mov     ah, 02h 
        mov     dl, '-' 
        int     21h 
        pop     ax 
        push    ax 
        neg     ax 
; Eiee?anoai oeo? aoaai aa??aou a CX. 
@oi1:   xor     cx, cx 
        mov     bx, 10 
@oi2:   xor     dx, dx 
        div     bx 
; Aaeei ?enei ia aanyou. A inoaoea iieo?aaony iineaaiyy oeo?a. 
; N?aco auaiaeou a? iaeucy, iiyoiio nio?aiei a? a noyea. 
        push    dx 
        inc     cx 
; A n ?anoiui iiaoi?yai oi ?a naiia, ioaaeyy io iaai i?a?aaio? 
; oeo?o ni?aaa, iiea ia inoaiaony iieu, ?oi cia?eo, ?oi aaeuoa 
; neaaa oieuei ioee. 
        test    ax, ax 
        jnz     short @oi2 
; Oaia?u i?enooiei e auaiao. 
        mov     ah, 02h 
@oi3:   pop     dx 
 
        add     dl, 30h 
        int     21h 
 
        loop    @oi3 
        pop     ax 
        pop     bx 
        pop     dx 
        pop     cx 
        ret 
outint  endp 
 
 
CODESG ENDS
 
END BEGIN
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.03.2014, 22:32
Ответы с готовыми решениями:

Сложение 32-х разрядных чисел на 16 разрядных регистрах
Здравствуйте! Нужно написать программу для сложение двух чисел: одно 16разрядное, другое...

Использование 32 разрядных регистров
Как использовать 32 разрядные регистры? Читал, что надо дописать use32, куда так и не понял))...

Схема платы расширения для чтения n- m-разрядных регистров
Вообще не представляю от чего отталкиваться, вроде и не сложно должно быть... Буду благодарен за...

Описать макрос SUM R, где R_ — имя одного из 32- разрядных регистров общего назначения, для записи в R_ сумм
Помогите решить, я пытался разобраться по методичке, но чуть не сошел с ума

2
1180 / 893 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
15.03.2014, 04:59 2
Вот здесь объясняется:
http://tbruylan.blogspot.ru/20... -8086.html
0
Ушел с форума
Автор FAQ
16161 / 7499 / 1031
Регистрация: 11.11.2010
Сообщений: 13,496
15.03.2014, 05:10 3
фисюк,
вот здесь на русском https://www.cyberforum.ru/asse... page2.html --> ГЛАВА 10. АРИФМЕТИЧЕСКИЕ КОМАНДЫ --> Команды деления --> Контрольные вопросы и упражнения --> Пояснение к 14 заданию
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.03.2014, 05:10
Помогаю со студенческими работами здесь

Декодирование 16, 32 разрядных чисел hex
вот собственно и сабж...заколебало в ручную пересчитывать,как бы мне реализовать это с вводом кода...

Сортировка трех 3-х разрядных чисел
Здрасте! На курсовую работу нужно синтезировать функциональную схему, на входы которой приходят 3...

Умножение двух 16-ти разрядных чисел
Здравствуйте . Помогите , пожалуйста, понять , как умножаются числа в ассемблере. Читал , что...

Разность двух 16-ти разрядных чисел
Добрый вечер завтра экзамен.В билете 2 вопроса 1)Написать программу вычитания 16-ти разрядных...


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

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

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