Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions lesson_02/index.es.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,8 +81,8 @@ constants_2: times 2 dw 4,3,2,1
```

* SECTION_RODATA especifica que esta es una sección de datos de solo lectura. (Es un macro porque diferentes formatos de archivo de salida usados por los sistemas operativos lo declaran de forma diferente)
* constants_1: La etiqueta constants_1 se define como ```db``` (declarar byte), es decir, equivalente a uint8_t constants_1[4] = {1, 2, 3, 4};
* constants_2: Esto usa el macro ```times 2``` para repetir las palabras declaradas, es decir, equivalente a uint16_t constants_2[8] = {4, 3, 2, 1, 4, 3, 2, 1};
* constants_1: La etiqueta constants_1 se define como ```db``` (declarar byte), es decir, equivalente a ```uint8_t constants_1[4] = {1, 2, 3, 4};```
* constants_2: Esto usa el macro ```times 2``` para repetir las palabras declaradas, es decir, equivalente a ```uint16_t constants_2[8] = {4, 3, 2, 1, 4, 3, 2, 1};```

Estas etiquetas, que el ensamblador convierte en direcciones de memoria, pueden usarse en cargas (pero no en escrituras, ya que son de solo lectura). Algunas instrucciones aceptan una dirección de memoria como operando, por lo que pueden usarse sin necesidad de cargar explícitamente en un registro (esto tiene ventajas e inconvenientes).

Expand Down
4 changes: 2 additions & 2 deletions lesson_02/index.fr.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,8 @@ constants_2: times 2 dw 4,3,2,1
```

* SECTION\_RODATA indique qu'il s'agit d'une section en lecture seule. (C'est une macro car les différents formats de fichier de sortie utilisés par les systèmes d'exploitation les déclarent différemment.)
* le label *constants\_1* est défini comme étant un `db` (*declared bytes*), c'est équivalent à `uint8_t constants_1[4] = {1, 2, 3, 4};`
* constants\_2 utilise la macro `times 2` pour répéter la définition de mot (`dw` pour *declared word*), c'est équivalent à `uint16_t constants_2[8] = {4, 3, 2, 1, 4, 3, 2, 1};`
* le label *constants\_1* est défini comme étant un `db` (*declared bytes*), c'est équivalent à ```uint8_t constants_1[4] = {1, 2, 3, 4};```
* constants\_2 utilise la macro `times 2` pour répéter la définition de mot (`dw` pour *declared word*), c'est équivalent à ```uint16_t constants_2[8] = {4, 3, 2, 1, 4, 3, 2, 1};```

Ces labels, que l'assembleur convertit en adresse mémoire, peuvent être utilisés pour les chargements (mais pas pour des stockages car ils sont en lecture seule). Quelques instructions acceptent une adresse mémoire comme opérande, ce qui permet de les utiliser sans chargement explicite dans un registre (il y a des avantages et des inconvénients à ceci).

Expand Down
4 changes: 2 additions & 2 deletions lesson_02/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,8 +81,8 @@ constants_2: times 2 dw 4,3,2,1
```

* SECTION_RODATA specifies this is a read-only data section. (This is a macro because different output file formats that operating systems use declare this differently)
* constants_1: The label constants_1, is defined as ```db``` (declare byte) - i.e equivalent to uint8_t constants_1[4] = {1, 2, 3, 4};
* constants_2: This uses the ```times 2``` macro to repeat the declared words - i.e equivalent to uint16_t constants_2[8] = {4, 3, 2, 1, 4, 3, 2, 1};
* constants_1: The label constants_1, is defined as ```db``` (declare byte) - i.e equivalent to ```uint8_t constants_1[4] = {1, 2, 3, 4};```
* constants_2: This uses the ```times 2``` macro to repeat the declared words - i.e equivalent to ```uint16_t constants_2[8] = {4, 3, 2, 1, 4, 3, 2, 1};```

These labels, which the assembler converts to a memory address, can then be used in loads (but not stores as they are read-only). Some instructions take a memory address as an operand so they can be used without explicit loads into a register (there are pros and cons to this).

Expand Down
4 changes: 2 additions & 2 deletions lesson_02/index.tr.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,8 +81,8 @@ constants_2: times 2 dw 4,3,2,1
```

* SECTION_RODATA bunun salt okunur veri bölümü olduğunu belirtir. (Bu bir makrodur çünkü işletim sistemlerinin kullandığı farklı çıktı dosya formatları bunu farklı şekilde beyan eder)
* constants_1: constants_1 etiketi ```db``` (declare byte - byte beyan et) olarak tanımlanır - yani uint8_t constants_1[4] = {1, 2, 3, 4}; eşdeğeri
* constants_2: Bu, beyan edilen word'leri tekrarlamak için ```times 2``` makrosunu kullanır - yani uint16_t constants_2[8] = {4, 3, 2, 1, 4, 3, 2, 1}; eşdeğeri
* constants_1: constants_1 etiketi ```db``` (declare byte - byte beyan et) olarak tanımlanır - yani ```uint8_t constants_1[4] = {1, 2, 3, 4};``` eşdeğeri
* constants_2: Bu, beyan edilen word'leri tekrarlamak için ```times 2``` makrosunu kullanır - yani ```uint16_t constants_2[8] = {4, 3, 2, 1, 4, 3, 2, 1};``` eşdeğeri

Derleyicinin bir bellek adresine dönüştürdüğü bu etiketler daha sonra yüklemelerde kullanılabilir (salt okunur oldukları için saklamalarda değil). Bazı talimatlar operand olarak bir bellek adresi alır, bu nedenle register'a açık yükleme olmadan kullanılabilirler (bunun artıları ve eksileri vardır).

Expand Down
4 changes: 2 additions & 2 deletions lesson_02/index.zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,8 +81,8 @@ constants_2: times 2 dw 4,3,2,1
```

* SECTION_RODATA 指定这是一个只读数据段。(这是一个宏,因为操作系统使用的不同输出文件格式对此有不同的声明)
* constants_1: 标签 constants_1,被定义为 ```db```(declare byte,即定义字节)- 相当于 uint8_t constants_1[4] = {1, 2, 3, 4};
* constants_2: 这使用了 ```times 2``` 宏来重复声明的字 - 相当于 uint16_t constants_2[8] = {4, 3, 2, 1, 4, 3, 2, 1};
* constants_1: 标签 constants_1,被定义为 ```db```(declare byte,即定义字节)- 相当于 ```uint8_t constants_1[4] = {1, 2, 3, 4};```
* constants_2: 这使用了 ```times 2``` 宏来重复声明的字 - 相当于 ```uint16_t constants_2[8] = {4, 3, 2, 1, 4, 3, 2, 1};```

这些标签(汇编器会将其转换为内存地址)可用于加载(但不能用于存储,因为是只读的)。有些指令可以直接接受内存地址作为操作数,因此无需先显式加载到寄存器(这样做各有利弊)。

Expand Down