Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Асемблер для платформи Java

Реферат Асемблер для платформи Java





d, land, lastore, lcmp, lconst_0, lconst_1, ldiv, lload_0, lload_1, lload_2, lload_3, lmul, lneg, lor, lrem, lreturn, lshl, lshr, lstore_0, lstore_1, lstore_2, lstore_3, lsub, lushr, lxor, monitorenter, monitorexit, nop, pop, pop2, return, saload, sastore, swap;

В· < мнемонічне _ ім'я > < мітка >; Таку форму мають команди переходу: goto, goto_w, if_acmpeq, if_acmpne, if_acmpge, if_acmpgt, if_icmple, if_icmplt, if_icmpne, ifeq, ifge, ifgt, ifle, iflt, ifne, ifnonull, ifnull, jsr, jsr_w;

В· < мнемонічне _ ім'я > < ціле число >; Число має задовольняти обмеженням конкретної команди: aload, astore, dload, dstore, fload, fstore, iload, istore, lload, lstore, ret, bipush, sipush, wide_aload, wide_astore, wide_dload, wide_dstore, wide_fload, wide_fstore, wide_iload, wide_istore, wide_lload, wide_lstore, wide_ret;

В· <мнемоніческое_імя> {<Полное_імя_класса> | @} :: <ім'я_поля>: <тіп_поля>; Тіп_поля - ім'я примітивного типу, прийняте в мові Java, або ім'я класу. Команди: getfield, putfield, getstatic, putstatic;

В· <мнемоніческое_імя> ... , <Тіп_параметра_ n >): <тіп_возвращаемого значення>; Тут типи параметрів і значення, що повертається - імена примітивних типів, прийняті в мові Java, імена класів, або (тільки для повертається значення) void. Команди: invokespecial, invokestatic, invokevirtual;

В· <мнемоніческое_імя> <Полное_імя_класса>; Такий формат мають наступні команди: anewarray , checkcast , instanceof , new ;

В· <мнемоніческое_імя> <Целое_число_индекс_переменной> <целое_чісло>; Команди: iinc , wide _ iinc ;

В· <мнемоніческое_імя> <Тип> <константа>; - команди ldc , ldc _ w , ldc _2 w . Тут тип - int, float, string ( для ldc, ldc_w), double, long ( для ldc_2w). Константа повинна мати відповідний тип (цілі числа записуються звичайним способом, речові - в десяткового або експоненційної формі, у форматі, прийнятому в Java, рядки записуються в подвійних лапках, при цьому дві подвійні лапки всередині рядка інтерпретуються як одна подвійна лапка в рядку);

В· invokeinterface ... , <Тіп_аргумента_2>): <тіп_возвращаемого_значенія> <Целое_чісло>; - типи - аналогічно іншим командам виклику методів;

В· multianewarray <полное_імя_класса> <Чісло_ізмереній>;

В· newarray

В· tableswitch <чісло_1>: <чісло_ n > default : <метка_0> <Чісло_1>: <метка_1> ... <Чісло_ n >: <метка_ n >; Тут числа чісло_1 ... чісло_ n повинні бути послідовними цілими числами. При цьому числа, зазначені відразу після мнемонічного імені команди, повинні збігатися з кордонами діапазону чисел, для яких вказані мітки переходу. lookupswitch default : <метка_0> <чісло_1>: <метка_1> ... <Чісло_ n >: <метка_ n >; Тут серед чисел, для яких вказані мітки переходу, не повинно бути однакових. Ці числа мають бути цілими, вони не зобов'язані бути впорядковані за зростанням, сортування відбувається при обробці команди компілятором. br/>
В  Тестові приклади.

Для тестування компілятора використовувалися, зокрема, такі приклади:


1.

% файл Summator.jsm

public class Summator;


fields;

private m_i: int;

methods;


% Конструктор. Заносить в полі m_i ціле число, що міститься в рядку,

% переданої як параметр. У разі, якщо рядок не містить

% правильної запису цілого числа, або це число від'ємне,

% то виводиться повідомлення про помилку.

public (java.lang.String): void;

maxstack 4;

maxlocals 2;

aload_0; % This

dup;

invokespecial java.lang.Object :: (): void;

aload_1; % Arg1

begin_try:

invokestatic java.lang.Integer :: parseInt (java.lang.String): int;

dup;

iconst_0;

if_icmpge end_try;

new java.lang.Exception;

dup;

invokespecial java.lang.Exception :: (): void;

athrow;

end_try:

putfield @ :: m_i: int;

return;

exception

pop;

getstatic java.lang.System :: out: java.io.PrintStream;

ldc string "Invalid argument";

invokevirtual java.io.PrintStream :: println (java.lang.String): void;

...


Назад | сторінка 9 з 14 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Java: Засоби побудови звітів для Java-додатків
  • Реферат на тему: Розробка програми на мові JAVA
  • Реферат на тему: Java: Росіяни букви і не тільки ...
  • Реферат на тему: Реалізація гри pong на мові Java за допомогою технології Socket
  • Реферат на тему: Створення бази даних автомобілебудівного підприємства у вигляді настільного ...