Characteristics of the high level programming languages Abstraction Productive reliable Type checking As efficient as hand written code Can be compiled and executed on a number of different machines, whereas assembly code is highly machine specific Productive:多产的 Reliab|e:可靠的
6 Characteristics of the high level programming languages • Abstraction – Productive – reliable • Type checking • As efficient as hand written code • Can be compiled and executed on a number of different machines, whereas assembly code is highly machine specific Productive:多产的 Reliable: 可靠的
Characteristics of the assembly programming languages Managing memory Low level instructions to carry out the computation Highly machine specif ic
7 Characteristics of the assembly programming languages • Managing memory • Low level instructions to carry out the computation • Highly machine specific
Why should we understand the assembly code Understand the optimization capabilities of the compiler Analyze the underlying inefficiencies in the code Sometimes the run-time behavior of a program is needed
8 Why should we understand the assembly code • Understand the optimization capabilities of the compiler • Analyze the underlying inefficiencies in the code • Sometimes the run-time behavior of a program is needed
From writing assembly code to understand assembly code Different set of skills Transformations Relation between source code and assembly code Reverse engineering Trying to understand the process by which a system was created By studying the system and By working backward Backward:回溯
9 From writing assembly code to understand assembly code • Different set of skills – Transformations – Relation between source code and assembly code • Reverse engineering – Trying to understand the process by which a system was created • By studying the system and • By working backward Backward:回溯
A Historical Perspective Long evolutionary development Started from rather primitive 16-bit processors Added more features Take the advantage of the technology improvements Satisfy the demands for higher performance and for supporting more advanced operating systems Laden with features providing backward compatibility that are obsolete | aden with:承载 compatibility;:兼容性 大 obsolete:陈旧的
10 A Historical Perspective • Long evolutionary development – Started from rather primitive 16-bit processors – Added more features • Take the advantage of the technology improvements • Satisfy the demands for higher performance and for supporting more advanced operating systems – Laden with features providing backward compatibility that are obsolete * laden with:承载 * compatibility: 兼容性 * obsolete:陈旧的