aboutsummaryrefslogtreecommitdiff
path: root/1.4.3.2.lyx
diff options
context:
space:
mode:
authorJuan Marín Noguera <juan@mnpi.eu>2025-05-16 22:18:44 +0200
committerJuan Marín Noguera <juan@mnpi.eu>2025-05-16 22:18:44 +0200
commit4f670b750af5c11e1eac16d9cd8556455f89f46a (patch)
treee0f8d7b33df2727d89150f799ee8628821fda80a /1.4.3.2.lyx
parent16ccda6c459c0fd7ca2081e9d541124c28b0c556 (diff)
Changed layout for more manageable volumes
Diffstat (limited to '1.4.3.2.lyx')
-rw-r--r--1.4.3.2.lyx294
1 files changed, 0 insertions, 294 deletions
diff --git a/1.4.3.2.lyx b/1.4.3.2.lyx
deleted file mode 100644
index 7c36188..0000000
--- a/1.4.3.2.lyx
+++ /dev/null
@@ -1,294 +0,0 @@
-#LyX 2.4 created this file. For more info see https://www.lyx.org/
-\lyxformat 620
-\begin_document
-\begin_header
-\save_transient_properties true
-\origin unavailable
-\textclass book
-\begin_preamble
-\input defs
-\end_preamble
-\use_default_options true
-\maintain_unincluded_children no
-\language english
-\language_package default
-\inputencoding utf8
-\fontencoding auto
-\font_roman "default" "default"
-\font_sans "default" "default"
-\font_typewriter "default" "default"
-\font_math "auto" "auto"
-\font_default_family default
-\use_non_tex_fonts false
-\font_sc false
-\font_roman_osf false
-\font_sans_osf false
-\font_typewriter_osf false
-\font_sf_scale 100 100
-\font_tt_scale 100 100
-\use_microtype false
-\use_dash_ligatures true
-\graphics default
-\default_output_format default
-\output_sync 0
-\bibtex_command default
-\index_command default
-\float_placement class
-\float_alignment class
-\paperfontsize default
-\spacing single
-\use_hyperref false
-\papersize default
-\use_geometry false
-\use_package amsmath 1
-\use_package amssymb 1
-\use_package cancel 1
-\use_package esint 1
-\use_package mathdots 1
-\use_package mathtools 1
-\use_package mhchem 1
-\use_package stackrel 1
-\use_package stmaryrd 1
-\use_package undertilde 1
-\cite_engine basic
-\cite_engine_type default
-\biblio_style plain
-\use_bibtopic false
-\use_indices false
-\paperorientation portrait
-\suppress_date false
-\justification true
-\use_refstyle 1
-\use_formatted_ref 0
-\use_minted 0
-\use_lineno 0
-\index Index
-\shortcut idx
-\color #008000
-\end_index
-\secnumdepth 3
-\tocdepth 3
-\paragraph_separation indent
-\paragraph_indentation default
-\is_math_indent 0
-\math_numbering_side default
-\quotes_style english
-\dynamic_quotes 0
-\papercolumns 1
-\papersides 1
-\paperpagestyle default
-\tablestyle default
-\tracking_changes false
-\output_changes false
-\change_bars false
-\postpone_fragile_content false
-\html_math_output 0
-\html_css_as_file 0
-\html_be_strict false
-\docbook_table_output 0
-\docbook_mathml_prefix 1
-\end_header
-
-\begin_body
-
-\begin_layout Standard
-\begin_inset Note Note
-status open
-
-\begin_layout Plain Layout
-TODO 3,
- 4,
- 7 (1p,
- 1:09)
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status open
-
-\begin_layout Plain Layout
-
-
-\backslash
-exerc3[10]
-\end_layout
-
-\end_inset
-
-The previous exercise suggests having the trace program write its output onto tape.
- Discuss why this would be preferable to printing it directly.
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status open
-
-\begin_layout Plain Layout
-
-
-\backslash
-answer
-\end_layout
-
-\end_inset
-
-The output of the tracer would be large,
- and so it would need to be analyzed by another program in order to focus on interesting parts or gather some statistics.
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status open
-
-\begin_layout Plain Layout
-
-
-\backslash
-rexerc4[25]
-\end_layout
-
-\end_inset
-
-What would happen if the trace routine were tracing
-\emph on
-itself
-\emph default
-?
- Specifically,
- consider the behavior if the two instructions
-\family typewriter
-ENTX LEAVEX
-\family default
-;
-
-\family typewriter
-JMP *+1
-\family default
- were placed just before
-\family typewriter
-ENTER
-\family default
-.
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status open
-
-\begin_layout Plain Layout
-
-
-\backslash
-answer
-\end_layout
-
-\end_inset
-
-Unfortunately this wouldn't work,
- as the registers A and J of the tracing tracing program and the traced traced program would be stored in the same addresses.
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status open
-
-\begin_layout Plain Layout
-
-
-\backslash
-rexerc7[25]
-\end_layout
-
-\end_inset
-
-Discuss how to write an efficient
-\emph on
-jump trace
-\emph default
- routine,
- which emits much less output than a normal trace.
- Instead of displaying the register contents,
- a jump trace simply records the jumps that occur.
- It outputs a sequence of pairs
-\begin_inset Formula $(x_{1},y_{1}),(x_{2},y_{2}),\dots$
-\end_inset
-
-,
- meaning that the program jumped from location
-\begin_inset Formula $x_{1}$
-\end_inset
-
- to
-\begin_inset Formula $y_{1}$
-\end_inset
-
-,
- then (after performing the instructions in locations
-\begin_inset Formula $y_{1},y_{1}+1,\dots,x_{2}$
-\end_inset
-
-) it jumped from
-\begin_inset Formula $x_{2}$
-\end_inset
-
- to
-\begin_inset Formula $y_{2}$
-\end_inset
-
-,
- etc.
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status open
-
-\begin_layout Plain Layout
-
-
-\backslash
-answer
-\end_layout
-
-\end_inset
-
-We could save this information right at the
-\family typewriter
-JUMP
-\family default
- label.
- At this point,
-
-\family typewriter
-PREG
-\family default
- contains the current instruction and
-\family typewriter
-INST1
-\family default
- contains the instruction to jump to,
- so it should be easy to move those to values to a buffer and call a subroutine to write to tape when the buffer is full.
-\end_layout
-
-\begin_layout Standard
-If the code wasn't self-modifying,
- we could just scan up to the next jump instruction,
- modify that one,
- and run up to that point,
- and the solution from the book specifies just that except that it allows
-\family typewriter
-STJ
-\family default
- to modify jump calls by handling this case separately during the scan.
- Since modern processors can raise an exception when modifying their own code (W^X),
- it should be possible to save all the jump calls in some table and substitute them by calls to a debugger routine before running,
- accepting that the program may detect that it's being debugged by looking at its own jump calls.
-\end_layout
-
-\end_body
-\end_document