Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2012, 20:43   #1
delfin07
Форумчанин
 
Регистрация: 14.05.2011
Сообщений: 108
По умолчанию проверить код

masm
Код:
model small
.STACK 256
.DATA
a dw 5
b dw 6
c dw 1
d db 3
y db ?
.code
main: 
mov AX,@data;
mov DS,AX

mov ax,5
cmp ax,a
jl m1
jge k1

mov ax,5
cmp ax,b
jl m2
jge k2

mov ax,5
cmp ax,c
jl m3
jge k3

mov ax,5
cmp ax,d
jl m4
jge k4
 
mov ax,a
add ax,b
add ax,c
add ax,d
mov y,ax

m1:
mov ax,a
idiv a
mov a,ax
k1:
mov a,0

m2:
mov ax,b
idiv b
mov b,ax
k2:
mov b,0

m3:
mov ax,c
idiv c
mov c,ax
k3:
mov c,0

m4:
mov ax,d
idiv d
mov d,ax
k4:
mov d,0

  
exit:
mov ax,4c00h
int 21h
END main;

Последний раз редактировалось rpy3uH; 20.02.2012 в 20:48.
delfin07 вне форума Ответить с цитированием
Старый 20.02.2012, 20:49   #2
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

что за глупые вопросы? запусти и проверь
rpy3uH вне форума Ответить с цитированием
Старый 20.02.2012, 20:57   #3
delfin07
Форумчанин
 
Регистрация: 14.05.2011
Сообщений: 108
По умолчанию

НАдо чтоб соответствовала Этому(Даны четыре числа. Найти сумму квадратов тех чисел, которые больше 5. В программе цикл не использовать)
delfin07 вне форума Ответить с цитированием
Старый 21.02.2012, 11:10   #4
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

delfin07
в сообщении #1 в тексте программы написан наркоманский бред
Даны четыре числа (тип числа? целочисленное? вещественное? размер числа: байт? слово? двойное слово? или др.?). Найти сумму квадратов тех чисел, которые больше 5 (квадрат числа больше 5? или само число больше 5?) (если вещественное число больше 2,2360679774997896964091736687313, тогда его квадрат будет больше 5, если целое число больше 2, тогда его квадрат также больше 5). В программе цикл не использовать.
1. заводишь переменную result=0
2. берешь очередное число из массива из четырех чисел и если это число больше 2 возводишь его в квадрат (команды mul или imul для целых чисел или fmul для вещественных) и этот квадрат суммируешь с переменной result.
3. повторяешь пункт 2 четыре раза (В программе цикл не использовать!)

Последний раз редактировалось Mikl___; 21.02.2012 в 11:19.
Mikl___ вне форума Ответить с цитированием
Старый 21.02.2012, 11:18   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Mikl___
сумму квадратов тех чисел, которые больше 5 (если вещественное число больше 2,2360679774997896964091736687313, тогда его квадрат будет больше 5,
коллега, вы, имхо, переусложнили.
в условии сказано тех чисел, которые больше пяти. ЧИСЕЛ, больших пяти, а не их квадраты больше пяти!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.02.2012, 11:32   #6
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

Serge_Bliznykov
А Вам не разу не попадались IT-попрошайки, которым требуется "проверить код", "решить задачу" и всё это непременно срочно, бесплатно, а сами авторы при этом не могут даже нормально пересказать условие этой задачи? не приходилось ли Вам задавать наводящие вопросы? уточнять диалект ассемблера, требуемую ось и т.д.?
Mikl___ вне форума Ответить с цитированием
Старый 21.02.2012, 11:49   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Mikl___
А Вам не разу не попадались IT-попрошайки, которым требуется "проверить код", "решить задачу" и всё это непременно срочно, бесплатно, а сами авторы при этом не могут даже нормально пересказать условие этой задачи? не приходилось ли Вам задавать наводящие вопросы? уточнять диалект ассемблера, требуемую ось и т.д.?
Mikl___, да Вы что?!! А что, такие "попрошайки" реально бывают?!

p.s. сорри за оффтоп

имхо, тут, в данном случае, насчёт того, какие числа нужно отобрать, в задании сказано чётно! Насчёт всего остального - полностью согласен с вашими замечаниями!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.02.2012, 12:19   #8
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

самое весёлое - что в самой первой строчке топика стоит masm, но ни одного макроса я не вижу... а задачка явно к этому и сводится)
Код:
.masm
model small
.STACK 256

.DATA
chisla dw 5, 4, 3, 1
y       dw 0

TestValue macro aa
              mov ax, aa
              cmp ax, 5
              jle zero
              mul ax
              jmp stopm
zero:       mov ax,0 
stopm:
TestValue endm

.code
main: 
mov AX,@data;
mov DS,AX

TestValue word ptr [Chisla]
add y, ax
TestValue word ptr [Chisla+2]
add y, ax
TestValue word ptr [Chisla+4]
add y, ax
TestValue word ptr [Chisla+6]
add y, ax
  
mov ax,4c00h
int 21h
END main;
Правильно поставленная задача - три четверти решения.

Последний раз редактировалось DiemonStar; 21.02.2012 в 12:40.
DiemonStar вне форума Ответить с цитированием
Старый 21.02.2012, 12:46   #9
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

DiemonStar
мелкие замечания:
1) если числа в массиве chisla имеют размер word тогда под квадрат числа, а тем более под сумму квадратов нужно отводить переменную размером dword
2) макросы есть не только в masm, но и в tasm, fasm, nasm и т.д.
Mikl___ вне форума Ответить с цитированием
Старый 21.02.2012, 13:58   #10
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Цитата:
1) если числа в массиве chisla имеют размер word тогда под квадрат числа, а тем более под сумму квадратов нужно отводить переменную размером dword
в исходном варианте там был вообще байт) для указанных значений слова за глаза хватит.

Цитата:
2) макросы есть не только в masm, но и в tasm, fasm, nasm и т.д.
помню-помню... высказывание про masm скорее навело на способ, которым это нужно сделать)
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi 7 - нужно проверить исходный код сортировки таблицы. raymond100 Помощь студентам 0 21.12.2011 20:50
Прошу проверить код pandaaaaa Паскаль, Turbo Pascal, PascalABC.NET 6 14.12.2011 01:58
"Разветляющие процессы" Прозьба проверить код! Dmitriy-e-nest Общие вопросы Delphi 3 15.01.2009 23:37
Задача на цикл(Проверить код) Molotok Помощь студентам 1 29.12.2008 11:20
Прошу проверить код программы Pashtet Паскаль, Turbo Pascal, PascalABC.NET 1 19.11.2008 11:50