|||
An assembly language is a low-level language for programming computers. It implements a symbolic representation of the numeric machine codes and other constants needed to program a particular CPU architecture. This representation is usually defined by the hardware manufacturer, and is based on abbreviations (called mnemonics) that help the programmer remember individual instructions, registers, etc. An assembly language is thus specific to a certain physical or virtual computer architecture (as opposed to most high-level languages, which are usually portable).
Assembly languages were first developed in the 1950s, when they were referred to as second generation programming languages. They eliminated much of the error-prone and time-consuming first-generation programming needed with the earliest computers, freeing the programmer from tedium such as remembering numeric codes and calculating addresses. They were once widely used for all sorts of programming. However, by the 1980s (1990s on small computers), their use had largely been supplanted by high-level languages, in the search for improved programming productivity. Today, assembly language is used primarily for direct hardware manipulation, access to specialized processor instructions, or to address critical performance issues. Typical uses are device drivers, low-level embedded systems, and real-time systems.
A utility program called an assembler is used to translate assembly language statements into the target computer's machine code. The assembler performs a more or less isomorphic translation (a one-to-one mapping) from mnemonic statements into machine instructions and data. (This is in contrast with high-level languages, in which a single statement generally results in many machine instructions. This is done by one of two means: a compiler is used to most-efficiently translate high-level language statements into machine code "executable" files; an interpreter executes similar statements directly and in its own application environment.)
Many sophisticated assemblers offer additional mechanisms to facilitate program development, control the assembly process, and aid debugging. In particular, most modern assemblers (although many have been available for more than 40 years already) include a macro facility (described below), and are called macro assemblers.
功能补充:提高程序非功能性要求的有力武器、程序破解技术的关键、理解和构筑操作系统内核的关键、语言处理技术的基础、开发工具构筑的重要环节、应付与扩展封闭系统的突破口等.
高校汇编语言课程应引入32位汇编内容,或者16与32对比教学与研究,32位汇编可以结合GCC这个交叉编译平台,比较不同层次语言(高级与低级)处理指标的对应关系、性能、调试、优化等方面,有利于培养不断层的专业人才,同时也有利于提升潜在的能力。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2025-1-11 01:38
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社