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

Составить программу, в которой вводятся 4 значения посчитать их сумму

15.01.2013, 21:21. Показов 1078. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Требуется помощь и объяснения

Составить программу, в которой вводятся 4 значения посчитать их сумму.
часть кода:

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
global _main
extern _printf
extern _scanf
segment .data
ar db “Vvedite chisla”,13,10,0
vvod “%d”,0
vivod “%d”,13,10,0
segment .text
_main:
push ar
call _printf
add esp,4
mov cx,3
scanf (%d”,&a)
..... \\вот здесь и возникают проблемы
ret

Найти радиус описанной окружности в равносторонний треугольник. Величина сторон известна


Заранее спасибо тем кто отклонится по моей проблеме.

Кликните здесь для просмотра всего текста
(не знаю почему, но мне с трудом получается понять ассемблер, объяснения приветствуются; Си был легче)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.01.2013, 21:21
Ответы с готовыми решениями:

Составить программу, в которой вводятся значения двух временных промежутков в часах
Z=(√m−√n)/ m Текст: Составить программу, в которой вводятся значения двух временных промежутков в...

Написать программу, в которой создается двухмерный массив, значения вводятся с клавиатуры,потом значения умножаются по строкам - access violation
Здравствуйте. Задание написать программу в которой создается 2-х мерный массив (размер вводится с...

составить программу в которой вводятся исходные данные,выводятся результаты вычислений
y= (a^2+b^2)^(1/3) ; z= abs((sin(a/2)^2)* cos(b/3) ; x= (y^2+z^3)/e^(a*y+b^2*z) помогите,...

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

9
Клюг
7675 / 3190 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
16.01.2013, 01:01 2
Вам под вынь-консоль хочется или под Досю?
0
0 / 0 / 0
Регистрация: 13.06.2011
Сообщений: 15
16.01.2013, 07:53  [ТС] 3
под DOS еще не работали, но думаю будем ( там есть какая-то большая разница?)
0
Клюг
7675 / 3190 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
16.01.2013, 12:29 4
Цитата Сообщение от logys
там есть какая-то большая разница?
Угу. Там нет халявных ф-ций из сюшного рантайма.
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
;MASM
.586
    .model flat, stdcall    
    option casemap :none
    include \masm32\include\windows.inc
    include \masm32\include\masm32.inc
    include \masm32\include\msvcrt.inc
    include \masm32\macros\macros.asm
    includelib \masm32\lib\masm32.lib
    includelib \masm32\lib\msvcrt.lib
.data
entr    db  'Enter val[%d]:',0
tpti    db  '%d',0
tpto    db  "sum = %d",0Dh,0Ah,0
cnt dd  1
sum dd  0
.data?
_val    dd  ?
.code    
start:  
    invoke  crt_printf, ADDR entr, cnt
    invoke  crt_scanf, ADDR tpti, ADDR _val
    mov eax, [_val]
    add [sum], eax
    inc [cnt]
    cmp cnt, 5
    jb  start
    invoke  crt_printf, ADDR tpto, [sum]
 
_exit:  invoke  crt__getch
    invoke  crt_exit,0
    end start
0
0 / 0 / 0
Регистрация: 13.06.2011
Сообщений: 15
16.01.2013, 19:36  [ТС] 5
если честно, то я понял только часть программы ( похоже код немного сложный, может это зависит от среды программирования? если да то мы программируем в нетбинсе)

Добавлено через 2 минуты
в начале темы я написал часть программы, он отличается немного от вашего
0
Клюг
7675 / 3190 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
16.01.2013, 19:54 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
.586
    .model flat, stdcall    
    option casemap :none
    include \masm32\include\windows.inc
    include \masm32\include\masm32.inc
    include \masm32\include\msvcrt.inc
    include \masm32\macros\macros.asm
    includelib \masm32\lib\masm32.lib
    includelib \masm32\lib\msvcrt.lib
.data
entr    db  'Enter val[%d]:',0
tpti    db  '%d',0
tpto    db  "sum = %d",0Dh,0Ah,0
cnt dd  1
sum dd  0
.data?
_val    dd  ?
.code    
;void main(void){
;char *entr = "Enter val[%d]:";
;char *tpti = "%d";
;char *tpto = "sum = %d\n\r";
;long cnt =1, sum = 0, _val;
;for (cnt, cnt<5, cnt++){ 
start:  
; printf(entr,cnt);
    invoke  crt_printf, ADDR entr, cnt
; scanf(tpti,&_val);
    invoke  crt_scanf, ADDR tpti, ADDR _val
; sum =+ _val;
    mov eax, [_val]
    add [sum], eax
    inc [cnt]
    cmp cnt, 5
    jb  start
;}
;printf(tpto, sum);
    invoke  crt_printf, ADDR tpto, [sum]
;_getch();
_exit:  invoke  crt__getch
;exit(0);
    invoke  crt_exit,0
;};
    end start
0
0 / 0 / 0
Регистрация: 13.06.2011
Сообщений: 15
16.01.2013, 20:03  [ТС] 7
извините, что не понимаю ваш код скорее всего мне надо больше теории

(это просто ассемблер?а то вдруг он подразделяется как Си)
0
Клюг
7675 / 3190 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
16.01.2013, 20:14 8
Это обычный масм под вынь-консоль с использованием сюшных ф-ций из msvcrt.dll(поставляется с виндой), имена ф-ций от сюшных отличаются только префиксом "crt_", аргументы одинаковы.
1
0 / 0 / 0
Регистрация: 13.06.2011
Сообщений: 15
16.01.2013, 20:27  [ТС] 9
а может быть так что мы программируем немного иначе на ассемблере?

Добавлено через 3 минуты
просто я и так ели понимаю его ( есть ассоциации с Си, только на них и держусь)

Добавлено через 1 минуту
все равно спасибо за помощь, попробую поговорить с преподавателем
0
0 / 0 / 0
Регистрация: 13.06.2011
Сообщений: 15
25.01.2013, 22:05  [ТС] 10
нужна помощь по NASM

ввод 4 чисел и послед. их сложение

Кликните здесь для просмотра всего текста
global _main
extern _scanf
extern _printf
section .data
segment .text
_main:
scanf "%d,%d,%d,%d",&a,&b,&c,&d
a dd
b dd
c dd
d dd
push a
push b
push c
push d
call _scanf
add esp,20
mov eax,[a]
mov ebx,[b]
mov ecx,[c]
add eax,ebx
mov ebx,[d]
add ecx,ebx
add eax,ecx
push eax
call _printf
RET
0
25.01.2013, 22:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.01.2013, 22:05
Помогаю со студенческими работами здесь

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

Вводятся 100 чисел, сумму которых необходимо посчитать
Уважаемые программисты, помогите пожалуйста решить ряд задач: 2) Вычислите сумму данных 100...

Динамический массив (составить программу, в которой вычислить сумму отрицательных элементов массива, расположенных под главной диагональю)
Создать динамический массив указателей для сохранения двумерного массива А с N × N...

Составить программу, в которой определяется строка, сумма элементов которой наибольшая
Задана квадратная матрица. Составить программу, в которой определяется строка, сумма ...


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

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