Массивы C# являются фиксированной длиной и всегда индексируемый. Пойдите с решением Motti:
int [] terms = new int[400];
for(int runs = 0; runs < 400; runs++)
{
terms[runs] = value;
}
Примечание, что этот массив является плотным массивом, непрерывным блоком 400 байтов, где можно отбросить вещи. Если Вы хотите динамично размерный массив, используйте List< интервал>.
List<int> terms = new List<int>();
for(int runs = 0; runs < 400; runs ++)
{
terms.Add(runs);
}
Никакой интервал [], ни List< интервал> является ассоциативным массивом - который был бы Dictionary<> в C#. И массивы и списки являются плотными.
Это варьируется от ассемблера к ассемблеру. Большинство машин предлагают регистры с символическими именами. как R1 или EAX (Intel x86), и есть инструкция имена вроде "CMP" для сравнения. И для сравнения инструкция, вам нужен другой операнд, иногда регистр, иногда буквальный. Часто монтажники разрешить комментарии справа от инструкции.
Строка инструкции выглядит так:
<opcode> <register> <operand> ; comment
Ваш ассемблер может несколько отличаться.
Для ассемблера Microsoft X86 вы можете написать:
CMP EAX, 23; сравнить регистр EAX с константой 23
или
CMP EAX, XYZ; сравнить регистр EAX с содержимым ячейки памяти с именем XYZ
Часто можно записывать сложные "выражения" в поле операнда которые позволяют инструкции, если она имеет возможность, адресовать память разными способами. Но я думаю, это ответ на ваш вопрос.
Сначала вызывается инструкция CMP (сравнение), затем одна из следующих:
jle - переход к строке, если меньше или равно
jge - переход к строке, если он больше или равен
Младший ассемблер работает с байтами, а не битами (в любом случае напрямую). Если вы хотите узнать о битовой логике, вам нужно взглянуть на схему проектирования.
Основной метод (в большинстве современных систем) состоит в том, чтобы вычесть два числа и затем проверить знаковый бит результата, т. Е. Увидеть, больше ли результат / равен / меньше чем нуль. В ассемблерном коде вместо получения результата напрямую (в регистр) вы обычно просто переходите в зависимости от состояния:
; Compare r1 and r2
CMP $r1, $r2
JLT lessthan
greater_or_equal:
; print "r1 >= r2" somehow
JMP l1
lessthan:
; print "r1 < r2" somehow
l1:
Это полностью зависит от процессора, о котором вы говорите, но он обычно имеет форму:
cmp r1, r2
ble label7
Другими словами, инструкция сравнения для установки соответствующих флагов, за которой следует условный переход в зависимости от этих флагов.
Обычно это минимально, насколько вам нужно для программирования. Для этого вам нужно знать машинный язык только в том случае, если вы пишете ассемблеры, и вам нужно знать микрокод и / или схемы только при создании процессоров.
Как уже упоминалось, обычно сравнение выполняется посредством вычитания.
Например, Процесс сборки / управления X86 .
На аппаратном уровне есть специальные цифровые схемы для выполнения вычислений, такие как сумматоры .