Explore chapters and articles related to this topic
The development of microprocessor systems
Published in D.A. Bradley, N.C. Burd, D. Dawson, A.J. Loader, Mechatronics, 2018
D.A. Bradley, N.C. Burd, D. Dawson, A.J. Loader
A programming language defines a logical means of expression for actions which are to be executed by the microprocessor system. Assembly language is an example of a programming language which is intimately related to the specific hardware architecture of a particular microprocessor through its instruction set. As a consequence, each microprocessor will have its own instruction set and its own assembler. Assembly language is therefore known as a low level programming language because it is based strictly on the low level operation of the device. The major disadvantage of this is that the programmer has to have a detailed knowledge of the instruction set and registers of the microprocessor they are programming, and must always have these details in mind when writing a program. Alternatively, high level languages, such as C, mask these details from programmers by allowing them to express programs in a way which makes no reference to the registers or instruction set of the microprocessor. High level languages are therefore intended to be machine independent, and are constrained only by the programming rules of the language.
Floating Point Data and Conversions
Published in Julio Sanchez, Maria P. Canton, Software Solutions for Engineers and Scientists, 2018
Julio Sanchez, Maria P. Canton
In Section 6.2 we saw that it is relatively easy for assembler code to initialize variables and to define memory constants and integer values which can be loaded into the math unit. But there is no simple or convenient way of converting ASCII decimal numbers entered by the user into math unit real formats and vice versa. Over the years Intel has made available software support packages for each of its math units. These products, named the 80x87 Numeric Support Libraries, include conversion routines, software emulators, libraries of common and complex-number functions, and error handlers. The principal problem with the 80x87 Numeric Support Libraries is that they are designed to be used with Intel’s ASMx86 line of assemblers. The code is not easily portable to other high- or low-level development systems.
Programming Microcontroller
Published in Franjieh El Khoury, Antoine Zgheib, Building a Dedicated GSM GPS Module Tracking System for Fleet Management, 2018
Franjieh El Khoury, Antoine Zgheib
An assembly language is a low-level programming language for a computer, or other programmable device (e.g., microcontroller), in which there is a very strong one-to-one correspondence between the language and the architecture's machine code instructions (Blum 2006; Cockerell 1987). Each assembly language is specific to a particular microcontroller architecture. Assembly language is also called symbolic machine code. It is converted into executable machine code by an assembler as a utility program. A program written in assembly language consists of a series of machine code instructions (i.e., mnemonic), meta-statements (i.e., directives, pseudo-instructions, and pseudo-ops), comments, and data. Assembly language instructions usually consist of an opcode mnemonic followed by a list of data, arguments, or parameters. These are translated by an assembler into machine language instructions that can be loaded into memory and executed. Multiple sets of mnemonics or assembly-language syntax may exist for a single instruction set, typically represented in different assembler programs. Therefore, they are supplied by the manufacturer and used in its documentation.
Thermodynamic-RAM technology stack
Published in International Journal of Parallel, Emergent and Distributed Systems, 2018
M. Alexander Nugent, Timothy W. Molter
While a machine learning application developer using the kT-RAM emulator would have full control of the design of the application and can use kT-RAM to its full potential, she would be required to understand the instruction set and underlying mechanics of kT-RAM and AHaH Computing. This level of development is analogous to writing assembly code or using a very low-level programming library.