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

Программа ввода с клавиатуры двух цифр в десятичной системе счисления, вычисления их произведения и вывода двоичного пре

04.11.2010, 22:02. Показов 3772. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток Вам! Народ! помогите написать программу на языке Assembler

Вот задание: Написать программу ввода с клавиатуры двух цифр в десятичной системе счисления, вычисления их произведения и вывода двоичного представления на экран.

P.s. если можете то по возможности с коментариями что как работает.

Заранее спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.11.2010, 22:02
Ответы с готовыми решениями:

Вычислите произведение двух чисел: x и y, в десятичной системе счисления
Возможны ли решения на Вейсике для следующих задач. Если да, помогите. Задача №1 2 балла ...

Сложение двух чисел в Двоично-десятичной системе счисления
Доброго времени суток, может есть ли у кого уже готовый код? или же можете носом ткнуть на ссылку,...

Сортировать строки матрицы по возрастанию суммы цифр в десятичной системе счисления
Сортировать строки матрицы K ( m , n ) , содержащий натуральные числа , по возрастанию суммы цифр в...

Найти сумму двух чисел в двоично-десятичной системе счисления
Найти сумму двух чисел в двоично-десятичной системе счисления A(10)=25 B(2)=1011011

5
Maniac
Эксперт С++
1464 / 965 / 160
Регистрация: 02.01.2009
Сообщений: 2,820
Записей в блоге: 1
04.11.2010, 23:23 2
ice_sweet_ice, а проблема то в чем? ( В масм32 пойдет? )

Добавлено через 1 час 14 минут
Вводимые числа не должны быть больше слова! ( проверку сам добавь если нужно )
Файл for_pr.Inc
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
include windows.inc
include kernel32.inc
include masm32.inc
 
include C:\MASM32\MACROS\strings.mac 
 
includelib  kernel32.lib
includelib  masm32.lib
 
Main      PROTO
 
CorectLine  PROTO STDCALL :LPCSTR
StrToDec    PROTO STDCALL :LPCSTR 
DecToStrBin PROTO STDCALL :DWORD, :LPCSTR
Файл for_pr.Asm
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
.386
.model flat, stdcall
option casemap:none
include for_pr.Inc
.data
    A       BYTE    16 dup(0)
    B       BYTE    16 dup(0)
    Buff    BYTE    34 dup(0)
.code
 
start:
    invoke Main
    invoke ExitProcess,0
Main proc
    
    invoke StdOut,$CTA0("Input A(WORD): ")
    invoke StdIn, ADDR A, 16
    invoke StdOut,$CTA0("Input B(WORD): ")
    invoke StdIn, ADDR B, 16
    
    invoke CorectLine, ADDR A
    invoke CorectLine, ADDR B
    
    invoke StrToDec, addr A
    mov ebx, eax
    
    invoke StrToDec, addr B
    
    mul bx
    push dx
    push ax
    pop eax
    
    invoke DecToStrBin, eax, ADDR Buff
    invoke StdOut,$CTA0("Result : ")
    
    lea edi, Buff
    mov al, '1'
    repnz scasb
    dec edi
    
    invoke StdOut,edi
    
    invoke StdIn,ADDR Buff,LENGTHOF Buff
    ret
Main endp
 
StrToDec    PROC STDCALL uses esi ebx, lpStr :LPCSTR 
    mov esi, lpStr
    xor ebx, ebx
    xor eax, eax
@@:
    lodsb
    or al, al
    jz @F
    and eax, 0Fh
    lea ebx, [ebx + ebx * 4]
    add ebx, ebx
    add ebx, eax
    jmp @B
@@:
    mov eax, ebx
 
    ret
StrToDec ENDP
 
DecToStrBin PROC STDCALL uses edi ebx, Num :DWORD, Buffer :LPCSTR
    mov ebx, Num
    mov edi, Buffer
    
    mov ecx, 32
@@: 
    rol ebx,1
    setc al
    or al,30h
    stosb
loop @B
    mov ax,'b'
    stosw   
    ret
DecToStrBin ENDP
 
CorectLine  PROC STDCALL uses edi, lpStr :LPCSTR
 
    mov al, 0Dh
    mov edi, lpStr
    mov ecx, -1
    repnz scasb
    mov byte ptr[edi-1], 0
    
    ret
CorectLine ENDP
 
end start
1
1 / 1 / 0
Регистрация: 04.11.2010
Сообщений: 6
05.11.2010, 00:18  [ТС] 3
блин.. большое спасибо, но видно не смог поставить вопрос правельно т.к. сам в этом очень плохо понимаю...
я незнаю как называется разновидность Assembler'a на котором нужно написать... приведу пример:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
CSEG segment
org 100h
start:
mov ah,9
mov dx,offset string
int 21h
mov ah,10h
int 16h
int 20h
string db "Hello $"
CSEG ends
end start
Извените за некорректно поставленный вопрос
0
Maniac
Эксперт С++
1464 / 965 / 160
Регистрация: 02.01.2009
Сообщений: 2,820
Записей в блоге: 1
05.11.2010, 04:06 4
ice_sweet_ice, Ну я только masm32 использую ( пока ).. ( и учили меня на нем, и учат )
1
1 / 1 / 0
Регистрация: 04.11.2010
Сообщений: 6
05.11.2010, 17:47  [ТС] 5
Цитата Сообщение от ISergey Посмотреть сообщение
ice_sweet_ice, Ну я только masm32 использую ( пока ).. ( и учили меня на нем, и учат )
ISergey Ну все равно спасибо, может это кто нибудь сможет в мой код перекинуть
0
1 / 1 / 0
Регистрация: 04.11.2010
Сообщений: 6
10.11.2010, 23:03  [ТС] 6
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
CSEG segment
org 100h
 
start:
 
;msg 1
mov dx, offset mess1
mov ah, 9
int 21h
 
;get first char from keyboard
mov bx, 0
mov ah, 1
int 21h
and al, 0fh
mov ah,0
add bl,al
 
;mess2
mov dx, offset mess2
mov ah, 9
int 21h
 
;get second char from keyboard
mov ah, 1
int 21h
and al, 0fh
mul bl
mov bl,al
 
;propysk stroki
mov ah, 02h
mov dl, 0Dh
int 21h
mov dl, 0Ah
int 21h
 
;mess3
mov dx, offset mess3
mov ah, 9
int 21h
 
mov cx, 8
print: mov ah, 2   ; print function.
       mov dl, '0'
       test bl, 10000000b  ; test first bit.
       jz zero
       mov dl, '1'
zero:  int 21h
       shl bl, 1
loop print
 
 
;binarnii simvol
mov dl, 'b'
int 21h
 
mov dx, offset mess4
mov ah, 9
int 21h
 
; wait for any key press:
mov ah, 0
int 16h
 
ret
 
mess1 db 0Dh,0Ah, 'BBeDuTe nepBoe 4ucJlo: $'
mess2 db 0Dh,0Ah, 'BBeDuTe BTopoe 4ucJlo: $'
mess3 db 0Dh,0Ah, 'TTpou3BeDeHue: $'
mess4 db 0Dh,0Ah, 'TTo3DpaBJl9I0! nepeBoD BblnoJlHeH!$'
 
CSEG ends
end start
Задачу помогли решить хорошие люди, выкладываю ее Вам.
1
10.11.2010, 23:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.11.2010, 23:03
Помогаю со студенческими работами здесь

Дано целое число X в десятичной системе счисления. Выведите запись числа X в восьмеричной системе счисления
Почему настоящие программисты путают католическое Рождестово и Halloween? Потому что 25 DEC = 31...

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

Записывать в двоичной системе счисления целое число, имеющее не более 100 цифр в десятичной записи
Как можно используя процедуру Randomize и функцию Random в динамическом массиве Записывать в...

Вычисления суммы всех четырехзначных чисел, в десятичной записи которых нет двух одинаковых нечетных цифр
составьте программу вычисления суммы всех четырехзначных чисел,в десятичной записи которых нет двух...

Программа, запрашивающая с клавиатуры натуральное число n и определяющую количество различных цифр в его десятичной записи
Программа, запрашивающую с клавиатуры натуральное число n и определяющую количество различных цифр...

Вычитание списков в десятичной системе счисления
Вычитание списков в десятичной системе счисления - Lisp


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

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