From f30058b07840a360e5b077e1e3b85f59dde448df Mon Sep 17 00:00:00 2001 From: sayon Date: Thu, 20 Jul 2017 15:13:35 +0200 Subject: [PATCH] add previous and next links --- questions/answers/001.md | 3 +-- questions/answers/002.md | 3 +-- questions/answers/003.md | 3 +-- questions/answers/004.md | 5 ++--- questions/answers/005.md | 3 +-- questions/answers/006.md | 3 +-- questions/answers/007.md | 3 +-- questions/answers/008.md | 3 +-- questions/answers/009.md | 3 +-- questions/answers/010.md | 3 +-- questions/answers/011.md | 3 +-- questions/answers/012.md | 3 +-- questions/answers/013.md | 3 +-- questions/answers/014.md | 3 +-- questions/answers/015.md | 3 +-- questions/answers/016.md | 3 +-- questions/answers/017.md | 3 +-- questions/answers/018.md | 3 +-- questions/answers/019.md | 3 +-- questions/answers/022.md | 3 +-- questions/answers/023.md | 3 +-- questions/answers/024.md | 3 +-- questions/answers/025.md | 3 +-- questions/answers/027.md | 3 +-- questions/answers/028.md | 3 +-- questions/answers/029.md | 3 +-- questions/answers/030.md | 3 +-- questions/answers/031.md | 3 +-- questions/answers/033.md | 3 +-- questions/answers/034.md | 3 +-- questions/answers/035.md | 7 +++---- questions/answers/036.md | 3 +-- questions/answers/037.md | 3 +-- questions/answers/038.md | 3 +-- questions/answers/039.md | 3 +-- questions/answers/040.md | 3 +-- questions/answers/041.md | 3 +-- questions/answers/042.md | 3 +-- questions/answers/043.md | 3 +-- questions/answers/044.md | 3 +-- questions/answers/045.md | 3 +-- questions/answers/047.md | 3 +-- questions/answers/048.md | 3 +-- questions/answers/049.md | 3 +-- questions/answers/050.md | 3 +-- questions/answers/051.md | 3 +-- questions/answers/052.md | 3 +-- questions/answers/053.md | 3 +-- questions/answers/055.md | 3 +-- questions/answers/056.md | 3 +-- questions/answers/058.md | 3 +-- questions/answers/059.md | 3 +-- questions/answers/060.md | 3 +-- questions/answers/061.md | 3 +-- questions/answers/062.md | 3 +-- questions/answers/063.md | 3 +-- questions/answers/064.md | 3 +-- questions/answers/065.md | 3 +-- 58 files changed, 61 insertions(+), 119 deletions(-) diff --git a/questions/answers/001.md b/questions/answers/001.md index 8344541..f76c45b 100644 --- a/questions/answers/001.md +++ b/questions/answers/001.md @@ -50,5 +50,4 @@ The difference is that the CF is a result of an unsigned overflow (not enough bi - - \ No newline at end of file + [next](2.md) diff --git a/questions/answers/002.md b/questions/answers/002.md index c6d1ce3..cca961a 100644 --- a/questions/answers/002.md +++ b/questions/answers/002.md @@ -27,5 +27,4 @@ There might be additional points, which are of a little importance to us, such a - - \ No newline at end of file +[prev](1.md) [next](3.md) diff --git a/questions/answers/003.md b/questions/answers/003.md index 1a494d8..5987e84 100644 --- a/questions/answers/003.md +++ b/questions/answers/003.md @@ -18,5 +18,4 @@ a couple of CPU cycles - - \ No newline at end of file +[prev](2.md) [next](4.md) diff --git a/questions/answers/004.md b/questions/answers/004.md index 6e20f91..5ca9193 100644 --- a/questions/answers/004.md +++ b/questions/answers/004.md @@ -8,7 +8,7 @@ What is the hardware stack? # Answer -\ + The first part of the answer is: what is a stack? @@ -36,5 +36,4 @@ Examples of such instructions are: - - \ No newline at end of file +[prev](3.md) [next](5.md) diff --git a/questions/answers/005.md b/questions/answers/005.md index f9b66e4..df7f9b6 100644 --- a/questions/answers/005.md +++ b/questions/answers/005.md @@ -25,5 +25,4 @@ representation -- internal interrupt). - - \ No newline at end of file +[prev](4.md) [next](6.md) diff --git a/questions/answers/006.md b/questions/answers/006.md index 6b54926..1b9d7cc 100644 --- a/questions/answers/006.md +++ b/questions/answers/006.md @@ -20,5 +20,4 @@ model are trying to solve? - - \ No newline at end of file +[prev](5.md) [next](7.md) diff --git a/questions/answers/007.md b/questions/answers/007.md index 3525808..529fb54 100644 --- a/questions/answers/007.md +++ b/questions/answers/007.md @@ -29,5 +29,4 @@ Here is the full list (16 general purpose registers): - - \ No newline at end of file +[prev](6.md) [next](8.md) diff --git a/questions/answers/008.md b/questions/answers/008.md index 92eb10d..ca09939 100644 --- a/questions/answers/008.md +++ b/questions/answers/008.md @@ -15,5 +15,4 @@ What is the purpose of stack pointer? - - \ No newline at end of file +[prev](7.md) [next](9.md) diff --git a/questions/answers/009.md b/questions/answers/009.md index ed74210..7ec951f 100644 --- a/questions/answers/009.md +++ b/questions/answers/009.md @@ -20,5 +20,4 @@ Being unable to reason about the amount of elements in stack, this question has - - \ No newline at end of file +[prev](8.md) [next](10.md) diff --git a/questions/answers/010.md b/questions/answers/010.md index 0462088..731a774 100644 --- a/questions/answers/010.md +++ b/questions/answers/010.md @@ -19,5 +19,4 @@ So, no, we are unable to reason about the amount of elements in stack at all. - - \ No newline at end of file +[prev](9.md) [next](11.md) diff --git a/questions/answers/011.md b/questions/answers/011.md index 30755c1..185979c 100644 --- a/questions/answers/011.md +++ b/questions/answers/011.md @@ -21,5 +21,4 @@ vs nine for `mov` with operand). - - \ No newline at end of file +[prev](10.md) [next](12.md) diff --git a/questions/answers/012.md b/questions/answers/012.md index 39c5866..ca7f1c3 100644 --- a/questions/answers/012.md +++ b/questions/answers/012.md @@ -20,5 +20,4 @@ The assembly programs return the exit status by passing it to the - - \ No newline at end of file +[prev](11.md) [next](13.md) diff --git a/questions/answers/013.md b/questions/answers/013.md index f1557e4..2b88393 100644 --- a/questions/answers/013.md +++ b/questions/answers/013.md @@ -17,5 +17,4 @@ The program exit status (return code). - - \ No newline at end of file +[prev](12.md) [next](14.md) diff --git a/questions/answers/014.md b/questions/answers/014.md index 92358b6..40cc757 100644 --- a/questions/answers/014.md +++ b/questions/answers/014.md @@ -17,5 +17,4 @@ Use `man ascii` to view the full ASCII table with the symbol codes. - - \ No newline at end of file +[prev](13.md) [next](15.md) diff --git a/questions/answers/015.md b/questions/answers/015.md index 7fece34..40f4607 100644 --- a/questions/answers/015.md +++ b/questions/answers/015.md @@ -41,5 +41,4 @@ its value, becoming `1111` in binary, or `0xF`. - - \ No newline at end of file +[prev](14.md) [next](16.md) diff --git a/questions/answers/016.md b/questions/answers/016.md index cabd0bd..f2c5491 100644 --- a/questions/answers/016.md +++ b/questions/answers/016.md @@ -43,5 +43,4 @@ Some examples (all producing exactly the same code): - - \ No newline at end of file +[prev](15.md) [next](17.md) diff --git a/questions/answers/017.md b/questions/answers/017.md index 38acca4..60a27d9 100644 --- a/questions/answers/017.md +++ b/questions/answers/017.md @@ -16,5 +16,4 @@ are exactly the same. - - \ No newline at end of file +[prev](16.md) [next](18.md) diff --git a/questions/answers/018.md b/questions/answers/018.md index af8e9ee..7e86779 100644 --- a/questions/answers/018.md +++ b/questions/answers/018.md @@ -46,5 +46,4 @@ stored in reverse order, the least significant byte being the first. - - \ No newline at end of file +[prev](17.md) [next](19.md) diff --git a/questions/answers/019.md b/questions/answers/019.md index 61edec2..0bffbbb 100644 --- a/questions/answers/019.md +++ b/questions/answers/019.md @@ -76,5 +76,4 @@ syscall - - \ No newline at end of file +[prev](18.md) [next](20.md) diff --git a/questions/answers/022.md b/questions/answers/022.md index ff205f2..3c886f7 100644 --- a/questions/answers/022.md +++ b/questions/answers/022.md @@ -20,5 +20,4 @@ TODO - - \ No newline at end of file +[prev](21.md) [next](23.md) diff --git a/questions/answers/023.md b/questions/answers/023.md index 8899bd4..8274bfe 100644 --- a/questions/answers/023.md +++ b/questions/answers/023.md @@ -25,5 +25,4 @@ They are parts of the same regiser: - - \ No newline at end of file +[prev](22.md) [next](24.md) diff --git a/questions/answers/024.md b/questions/answers/024.md index 57fca30..328980f 100644 --- a/questions/answers/024.md +++ b/questions/answers/024.md @@ -17,5 +17,4 @@ By using `r9d`, `r9w` and `r9b` to access the double word (32 bit), word (16 bit - - \ No newline at end of file +[prev](23.md) [next](25.md) diff --git a/questions/answers/025.md b/questions/answers/025.md index 33c5a86..d1ec4e0 100644 --- a/questions/answers/025.md +++ b/questions/answers/025.md @@ -14,5 +14,4 @@ For example, `call`, `ret`, `push`, `pop`. - - \ No newline at end of file +[prev](24.md) [next](26.md) diff --git a/questions/answers/027.md b/questions/answers/027.md index 2ff0cd5..2b8b400 100644 --- a/questions/answers/027.md +++ b/questions/answers/027.md @@ -19,5 +19,4 @@ Enumerate the Callee Saved Registers - - \ No newline at end of file +[prev](26.md) [next](28.md) diff --git a/questions/answers/028.md b/questions/answers/028.md index 2f02b64..48c60e9 100644 --- a/questions/answers/028.md +++ b/questions/answers/028.md @@ -23,5 +23,4 @@ them in a general purpose fashion anyway. - - \ No newline at end of file +[prev](27.md) [next](29.md) diff --git a/questions/answers/029.md b/questions/answers/029.md index 9aefb94..a93e7da 100644 --- a/questions/answers/029.md +++ b/questions/answers/029.md @@ -15,5 +15,4 @@ It holds the address of the next instruction to be executed. - - \ No newline at end of file +[prev](28.md) [next](30.md) diff --git a/questions/answers/030.md b/questions/answers/030.md index 545b7aa..afb7870 100644 --- a/questions/answers/030.md +++ b/questions/answers/030.md @@ -15,5 +15,4 @@ Sign Flag, it is set when the computation result is negative. - - \ No newline at end of file +[prev](29.md) [next](31.md) diff --git a/questions/answers/031.md b/questions/answers/031.md index fa4ba20..fb03016 100644 --- a/questions/answers/031.md +++ b/questions/answers/031.md @@ -15,5 +15,4 @@ Zero Flag, it is set when the computation result is zero. - - \ No newline at end of file +[prev](30.md) [next](32.md) diff --git a/questions/answers/033.md b/questions/answers/033.md index d6d6b2a..78138ef 100644 --- a/questions/answers/033.md +++ b/questions/answers/033.md @@ -15,5 +15,4 @@ own, because it is not stored in memory cells. - - \ No newline at end of file +[prev](32.md) [next](34.md) diff --git a/questions/answers/034.md b/questions/answers/034.md index ba41887..4ccdee2 100644 --- a/questions/answers/034.md +++ b/questions/answers/034.md @@ -35,5 +35,4 @@ _no: - - \ No newline at end of file +[prev](33.md) [next](35.md) diff --git a/questions/answers/035.md b/questions/answers/035.md index 1727764..c7e9f9b 100644 --- a/questions/answers/035.md +++ b/questions/answers/035.md @@ -33,8 +33,8 @@ jb rcx ; this jump _will_ be performed The reason why 42 < -1 is that -1 is interpreted as an unsigned integer. Its hexadecimal representation is 0xFFFFFFFFFFFFFFFF (all 64 bits are set). If we look at it as if it were an unsigned integer, it will be the greatest -unsigned integer that is representable in 64-bit format (that is, $2^{64}-1$). -Apparently, $42 < 2^{64}-1$ +unsigned integer that is representable in 64-bit format (that is, $2^64-1$). +Apparently, $42 < 2^64-1$ $42 < -1$ is false, so the jump will not beperformed. * You can also memorize the flags that are tested by these instructions. If these @@ -44,5 +44,4 @@ flags are set, the jump occurs. However, from my experience, it is useless. If y - - \ No newline at end of file +[prev](34.md) [next](36.md) diff --git a/questions/answers/036.md b/questions/answers/036.md index 3f5338a..d2936ce 100644 --- a/questions/answers/036.md +++ b/questions/answers/036.md @@ -16,5 +16,4 @@ are exactly the same. - - \ No newline at end of file +[prev](35.md) [next](37.md) diff --git a/questions/answers/037.md b/questions/answers/037.md index 42491a0..3b5c94f 100644 --- a/questions/answers/037.md +++ b/questions/answers/037.md @@ -25,5 +25,4 @@ _label: - - \ No newline at end of file +[prev](36.md) [next](38.md) diff --git a/questions/answers/038.md b/questions/answers/038.md index 32f8b11..a2eb8ab 100644 --- a/questions/answers/038.md +++ b/questions/answers/038.md @@ -19,5 +19,4 @@ The assembly programs return the exit status by passing it to the - - \ No newline at end of file +[prev](37.md) [next](39.md) diff --git a/questions/answers/039.md b/questions/answers/039.md index 15bbaf3..a0f08dd 100644 --- a/questions/answers/039.md +++ b/questions/answers/039.md @@ -17,5 +17,4 @@ lea rax, [rax + rax*8] - - \ No newline at end of file +[prev](38.md) [next](40.md) diff --git a/questions/answers/040.md b/questions/answers/040.md index 5f8fc8d..768f48e 100644 --- a/questions/answers/040.md +++ b/questions/answers/040.md @@ -21,5 +21,4 @@ jl label - - \ No newline at end of file +[prev](39.md) [next](41.md) diff --git a/questions/answers/041.md b/questions/answers/041.md index b9a1953..258982e 100644 --- a/questions/answers/041.md +++ b/questions/answers/041.md @@ -33,5 +33,4 @@ In Big Endian, the bytes are also stored in a natural order: - - \ No newline at end of file +[prev](40.md) [next](42.md) diff --git a/questions/answers/042.md b/questions/answers/042.md index 0bd0ef1..39b3151 100644 --- a/questions/answers/042.md +++ b/questions/answers/042.md @@ -24,5 +24,4 @@ mov rax, [rdx + 8*rcx + 42] ``` - - \ No newline at end of file +[prev](41.md) [next](43.md) diff --git a/questions/answers/043.md b/questions/answers/043.md index 20100eb..c971010 100644 --- a/questions/answers/043.md +++ b/questions/answers/043.md @@ -12,5 +12,4 @@ Where does the program execution start? From the `_start` label. - - \ No newline at end of file +[prev](42.md) [next](44.md) diff --git a/questions/answers/044.md b/questions/answers/044.md index c6c9680..b15bb1a 100644 --- a/questions/answers/044.md +++ b/questions/answers/044.md @@ -19,5 +19,4 @@ Because of __little endian__: - - \ No newline at end of file +[prev](43.md) [next](45.md) diff --git a/questions/answers/045.md b/questions/answers/045.md index 37a0155..4cea384 100644 --- a/questions/answers/045.md +++ b/questions/answers/045.md @@ -21,5 +21,4 @@ Decypher this segment selector: `0x08`. * ring = 0, this is the 0-th protection ring, we are actually in the most privileged mode. - - \ No newline at end of file +[prev](44.md) [next](46.md) diff --git a/questions/answers/047.md b/questions/answers/047.md index 6c226d6..9c1bd42 100644 --- a/questions/answers/047.md +++ b/questions/answers/047.md @@ -17,5 +17,4 @@ There is little difference between these for caches or for virtual memory, because the latter can be viewed as a particular type of cache. - - \ No newline at end of file +[prev](46.md) [next](48.md) diff --git a/questions/answers/048.md b/questions/answers/048.md index a36396b..2b2bab0 100644 --- a/questions/answers/048.md +++ b/questions/answers/048.md @@ -33,5 +33,4 @@ Anonymous pages correspond to no file in filesystem, thus their respective fields contain stub zeros. - - \ No newline at end of file +[prev](47.md) [next](49.md) diff --git a/questions/answers/049.md b/questions/answers/049.md index 60ce595..c3ed8f4 100644 --- a/questions/answers/049.md +++ b/questions/answers/049.md @@ -13,5 +13,4 @@ We recommend the following article: [https://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Memory/fully.html](https://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Memory/fully.html) - - \ No newline at end of file +[prev](48.md) [next](50.md) diff --git a/questions/answers/050.md b/questions/answers/050.md index 657714c..18fb66e 100644 --- a/questions/answers/050.md +++ b/questions/answers/050.md @@ -15,5 +15,4 @@ A continuous area of memory is called a region if: - - \ No newline at end of file +[prev](49.md) [next](51.md) diff --git a/questions/answers/051.md b/questions/answers/051.md index 9c12a86..87535e6 100644 --- a/questions/answers/051.md +++ b/questions/answers/051.md @@ -18,5 +18,4 @@ kills the process right away. You will see the error message `Segmentation fault - - \ No newline at end of file +[prev](50.md) [next](52.md) diff --git a/questions/answers/052.md b/questions/answers/052.md index 905969c..fa3fde3 100644 --- a/questions/answers/052.md +++ b/questions/answers/052.md @@ -16,5 +16,4 @@ handled by OS. It usually involves killing current process right away. You will see the error message `Segmentation fault`. - - \ No newline at end of file +[prev](51.md) [next](53.md) diff --git a/questions/answers/053.md b/questions/answers/053.md index 5c5ad01..e754095 100644 --- a/questions/answers/053.md +++ b/questions/answers/053.md @@ -19,5 +19,4 @@ is handled by OS, usually by killing the process. You will see an error message `Bus error`. - - \ No newline at end of file +[prev](52.md) [next](54.md) diff --git a/questions/answers/055.md b/questions/answers/055.md index 3f9c997..3793087 100644 --- a/questions/answers/055.md +++ b/questions/answers/055.md @@ -14,5 +14,4 @@ plugged in. These slots are aligned at boundary equal to the page size. - - \ No newline at end of file +[prev](54.md) [next](56.md) diff --git a/questions/answers/056.md b/questions/answers/056.md index 8fc6118..69ab9a6 100644 --- a/questions/answers/056.md +++ b/questions/answers/056.md @@ -16,5 +16,4 @@ A continuous area of memory is called a region if: - - \ No newline at end of file +[prev](55.md) [next](57.md) diff --git a/questions/answers/058.md b/questions/answers/058.md index e530af0..1f3e991 100644 --- a/questions/answers/058.md +++ b/questions/answers/058.md @@ -17,5 +17,4 @@ Otherwise we have to crawl through all levels of page tables to perform the full address translation. The latter will add a new entry into TLB and the subsequent accesses will be faster. - - \ No newline at end of file +[prev](57.md) [next](59.md) diff --git a/questions/answers/059.md b/questions/answers/059.md index b997dc7..7e69f5d 100644 --- a/questions/answers/059.md +++ b/questions/answers/059.md @@ -15,5 +15,4 @@ Because of locality: - - \ No newline at end of file +[prev](58.md) [next](60.md) diff --git a/questions/answers/060.md b/questions/answers/060.md index b8494eb..99fdcf3 100644 --- a/questions/answers/060.md +++ b/questions/answers/060.md @@ -15,5 +15,4 @@ the current address space. - - \ No newline at end of file +[prev](59.md) [next](61.md) diff --git a/questions/answers/061.md b/questions/answers/061.md index 37ea493..6616205 100644 --- a/questions/answers/061.md +++ b/questions/answers/061.md @@ -16,5 +16,4 @@ them on or off: * It is possible to forbid access from user mode (any ring besides ring0 -- U bit) - - \ No newline at end of file +[prev](60.md) [next](62.md) diff --git a/questions/answers/062.md b/questions/answers/062.md index f511cc8..88ba5ac 100644 --- a/questions/answers/062.md +++ b/questions/answers/062.md @@ -13,5 +13,4 @@ It forbids execution of code from the respective page. - - \ No newline at end of file +[prev](61.md) [next](63.md) diff --git a/questions/answers/063.md b/questions/answers/063.md index bf8673a..cb9c842 100644 --- a/questions/answers/063.md +++ b/questions/answers/063.md @@ -15,5 +15,4 @@ See Figure 4-3 on page 55. - - \ No newline at end of file +[prev](62.md) [next](64.md) diff --git a/questions/answers/064.md b/questions/answers/064.md index 788d2f9..8bdaa24 100644 --- a/questions/answers/064.md +++ b/questions/answers/064.md @@ -13,5 +13,4 @@ Yes, the least significant 12 bits denote the offset inside the page. They are similar in physical and virtual address. Refer to Figures 4-1 and 4-2. - - \ No newline at end of file +[prev](63.md) [next](65.md) diff --git a/questions/answers/065.md b/questions/answers/065.md index 650a248..00d9b8b 100644 --- a/questions/answers/065.md +++ b/questions/answers/065.md @@ -15,5 +15,4 @@ overwrite it, because the pages that correspond to `.text` are marked read-only via W bit in their Page Table Entries. - - \ No newline at end of file +[prev](64.md) [next](66.md)