A new efficient assembly language teaching aid for intel processors



Assembly 8086 language is an essential course that is taught in many universities offering computer engineering or science degree. However, the available software simulators that are used to write and run assembly programs do not fulfill the students' expectations due to being difficult to deal with and lacking a lot of necessary GUI features. In this article, we introduce a new Assembly Language Teaching Aid (ALTA32 or ALTA8086) which is basically a simulator that helps much in delivering concepts related to assembly language programming course for Intel microprocessors (µps). Among current and relevant simulators, ALTA32 not only is the simplest and easiest to use, but also has the most fascinating user-friendly interface that exhibits constructive and informative features. Additionally, it offers multiple run modes with the option of writing programs directly or through loading existing files. It works efficiently in both 16-bit and 32-bit extensions considering real mode memory addressing. It supports all data and stack memory addressing modes along with all available directives to be used in both model and full-segment program approaches. Furthermore, to understand and recognize changes after execution, all affected fields are emphasized and shown using visual effects such as dynamic labels, blinking texts, as well as colored codes. On the other hand, it is widely known that the Complex Instruction Set Computing (CISC) architecture, which is also a register-memory architecture, is characterized by affording many instructions with various operands, affected flags, complex operations, and sources of syntax errors. Although it is really challenging to build up a simulator that completely supports that wide range of Intel assembly instructions taking into account the variety in their lengths and formats, we succeeded eventually to eliminate the code redundancy and make our code readable, maintainable, and scalable through programming all instructions based on the methodology of combining or grouping all instructions that almost act similarly to follow a certain efficient algorithm. As a programming environment, VB.Net has been used to develop the ALTA32 simulator. Throughout our experience in teaching assembly 8086 language programming course for CISC processors, we found many difficulties in getting the students familiar with well-known simulators such as Microsoft Macro Assembler (MASM8086 or MASM32) or 8086 µp Emulator (EMU8086). Nevertheless, the feedback from our students about ALTA32 simulator was so impressive and the complaints were totally disappeared. © 2014 Wiley Periodicals, Inc. Comput Appl Eng Educ 23:217–238, 2015; View this article online at wileyonlinelibrary.com/journal/cae; DOI 10.1002/cae.21591