Инструменты пользователя

Инструменты сайта


ao:report2004

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
ao:report2004 [2021/06/19 18:48]
iadenisov создано
ao:report2004 [2022/08/17 15:52] (текущий)
iadenisov [4.2 HUGEINT]
Строка 366: Строка 366:
 ''LONGREAL'' ⊇ ''REAL'' ⊇ ''HUGEINT'' ⊇ ''LONGINT'' ⊇ ''INTEGER'' ⊇ ''SHORTINT'' ''LONGREAL'' ⊇ ''REAL'' ⊇ ''HUGEINT'' ⊇ ''LONGINT'' ⊇ ''INTEGER'' ⊇ ''SHORTINT''
  
-Имя Тип аргумента Тип результата  
  
-Функция +| Имя | Тип аргумента | Тип результата | Функция | 
-  +''SHORT(x)'' ''HUGEINT'' ''LONGINT'' | идентичность (возможно усечение) | 
-''SHORT(x)''  ''HUGEINT''  ''LONGINT''  +| ''LONG(x)'' | ''LONGINT'' | ''HUGEINT'' | идентичность | 
 +| ''ENTIERH(x)'' | вещественный | ''HUGEINT'' | наибольшее целое, не превышающее x |
  
-идентичность (возможно усечение) +Таблица 1: Новые процедуры изменения типа
-  +
-''LONG(x)'' ''LONGINT'' ''HUGEINT''  +
- +
-идентичность +
-  +
-''ENTIERH(x)'' вещественный ''HUGEINT''  +
- +
-наибольшее целое, не превышающее x +
- +
-Таблица 1:  Новые процедуры изменения типа+
  
 Таблица 1 показывает новые процедуры для изменения типа. Никаких новых правил описания констант не вводится; константы типизируются в соответствии с их значением. Таблица 1 показывает новые процедуры для изменения типа. Никаких новых правил описания констант не вводится; константы типизируются в соответствии с их значением.
  
 +| Имя | Функция |
 +| <code>PUT8(adr: LONGINT; x: SHORTINT)
 +PUT16(adr: LONGINT; x: INTEGER)
 +PUT32(adr: LONGINT; x: LONGINT)
 +PUT64(adr: LONGINT; x: HUGEINT)</code> | <code>Mem[adr] := x</code> |
 +| <code>GET8(adr: LONGINT): SHORTINT
 +GET16(adr: LONGINT): INTEGER
 +GET32(adr: LONGINT): LONGINT
 +GET64(adr: LONGINT): HUGEINT</code> | <code>RETURN Mem[adr]</code> |
 +| <code>PORTIN(port: LONGINT; x: AnyType)
 +PORTOUT(port: LONGINT; x: AnyType)</code> | <code>x := IOPort(port)
 +IOPort(port) := x</code> |
 +| <code>CLI
 +STI</code> | <code>отключить прерывания
 +включить прерывания </code> |
 +| <code>EAX, EBX, ECX, EDX, ESI, EDI, ESP, EBP
 +AX, BX, CX, DX, SI, DI
 +AL, AH, BL, BH, CL, CH, DL, DH</code> | <code>PUTREG/GETREG константы
 +32-битовые регистры
 +16-битовые регистры
 +8-регистры</code> |
  
-Имя Функция +Таблица 2: Новое в модуле ''SYSTEM'' для ''IA32''
-  +
-PUT8(adr: LONGINT; x: SHORTINT) Mem[adr] := x +
-PUT16(adr: LONGINT; x: INTEGER)  +
-PUT32(adr: LONGINT; x: LONGINT)  +
-PUT64(adr: LONGINT; x: HUGEINT)  +
-  +
-GET8(adr: LONGINT): SHORTINT RETURN Mem[adr] +
-GET16(adr: LONGINT): INTEGER  +
-GET32(adr: LONGINT): LONGINT  +
-GET64(adr: LONGINT): HUGEINT  +
-  +
-PORTIN(port: LONGINT; x: AnyType) x := IOPort(port) +
-PORTOUT(port: LONGINT; x: AnyType) IOPort(port) := x +
-  +
-CLI отключить прерывания +
-STI включить прерывания +
-  +
- PUTREG/GETREG константы +
-EAX, EBX, ECX, EDX, ESI, EDI, ESP, EBP 32-битовые регистры +
-AX, BX, CX, DX, SI, DI 16-битовые регистры +
-AL, AH, BL, BH, CL, CH, DL, DH 8-регистры +
-  +
- +
-Таблица 2:  Новое в модуле ''SYSTEM'' для ''IA32''+
  
 ==== 4.3 Нетрассируемые указатели (untraced pointers) ==== ==== 4.3 Нетрассируемые указатели (untraced pointers) ====
ao/report2004.txt · Последнее изменение: 2022/08/17 15:52 — iadenisov