Skip to content

Commit d0596a2

Browse files
committed
update alt+text
1 parent 5685566 commit d0596a2

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

docs/build/x64-software-conventions.md

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
description: "Learn more about: x64 ABI conventions"
33
title: "x64 ABI conventions"
4-
ms.date: 04/21/2022
4+
ms.date: 03/28/2025
55
helpviewer_keywords: ["x64 coding conventions", "x64 abi", "Visual C++, x64 calling conventions"]
66
---
77
# Overview of x64 ABI conventions
@@ -11,10 +11,11 @@ This topic describes the basic application binary interface (ABI) for x64, the 6
1111
## x64 calling conventions
1212

1313
Two important differences between x86 and x64 are:
14+
1415
- 64-bit addressing capability
1516
- Sixteen 64-bit registers for general use.
1617

17-
Given the expanded register set, x64 uses the [__fastcall](../cpp/fastcall.md) calling convention and a RISC-based exception-handling model.
18+
Given the expanded register set, x64 uses the [`__fastcall`](../cpp/fastcall.md) calling convention and a RISC-based exception-handling model.
1819

1920
The **`__fastcall`** convention uses registers for the first four arguments, and the stack frame to pass more arguments. For details on the x64 calling convention, including register usage, stack parameters, return values, and stack unwinding, see [x64 calling convention](x64-calling-convention.md).
2021

@@ -116,7 +117,7 @@ _declspec(align(2)) struct {
116117
}
117118
```
118119
119-
![Diagram showing the example 1 structure layout.](../build/media/vcamd_conv_ex_1_block.png "AMD conversion example 1 structure layout")
120+
:::image type="content" source="../build/media/vcamd_conv_ex_1_block.png" alt-text="Diagram showing the structure layout for example 1. The diagram shows 2 bytes of memory. Member a, a short, occupies bytes 0 through 1.":::image-end:::
120121
121122
#### Example 2
122123
@@ -130,7 +131,9 @@ _declspec(align(8)) struct {
130131
}
131132
```
132133

133-
![Diagram showing the example 2 structure layout.](../build/media/vcamd_conv_ex_2_block.png "AMD conversion example 2 structure layout")
134+
:::image type="complex" source="../build/media/vcamd_conv_ex_2_block.png" alt-text="Diagram showing the structure layout for example 2.":::
135+
The diagram shows 24 bytes of memory. Member a, an int, occupies bytes 0 through 3. The diagram shows padding for bytes 4 through 7. Member b, a double, occupies bytes 8 through 15. Member c, a short, occupies bytes 16 through 17. Bytes 18 through 23 are unused.
136+
:::image-end:::
134137

135138
#### Example 3
136139

@@ -145,7 +148,9 @@ _declspec(align(4)) struct {
145148
}
146149
```
147150
148-
![Diagram showing the example 3 structure layout.](../build/media/vcamd_conv_ex_3_block.png "AMD conversion example 3 structure layout")
151+
:::image type="complex" source="../build/media/vcamd_conv_ex_3_block.png" alt-text="Diagram showing the structure layout for example 3.":::
152+
The diagram shows 12 bytes of memory. Member a, a char, occupies byte 0. Byte 1 is padding. Member b, a short, occupies bytes 2 through 4. Member c, a char, occupies byte 4. Bytes 5 through 7 are padding. Member d, an int, occupies bytes 8 through 11.
153+
:::image-end:::
149154
150155
#### Example 4
151156
@@ -159,7 +164,9 @@ _declspec(align(8)) union {
159164
}
160165
```
161166

162-
![Diagram showing the example 4 union layout.](../build/media/vcamd_conv_ex_4_block.png "AMD conversion example 4 union layout")
167+
:::image type="complex" source="../build/media/vcamd_conv_ex_4_block.png" alt-text="Diagram showing the union layout for example 4.":::
168+
The diagram shows 8 bytes of memory. Member p, a char, occupies byte 0. Member s, a short, occupies bytes 0 through 1. Member l, a long, occupies bytes 0 through 3. Bytes 4 through 7 are padding.
169+
:::image-end:::
163170

164171
### Bitfields
165172

0 commit comments

Comments
 (0)