Presentation is loading. Please wait.

Presentation is loading. Please wait.

1/2002JNM1 Basic Elements of Assembly Language Integer Constants –If no radix is given, the integer is assumed to be decimal. Int 21h  Int 21 –A hexadecimal.

Similar presentations


Presentation on theme: "1/2002JNM1 Basic Elements of Assembly Language Integer Constants –If no radix is given, the integer is assumed to be decimal. Int 21h  Int 21 –A hexadecimal."— Presentation transcript:

1

2 1/2002JNM1 Basic Elements of Assembly Language Integer Constants –If no radix is given, the integer is assumed to be decimal. Int 21h  Int 21 –A hexadecimal constant beginning with a letter must have a leading 0 Mov ax, 0A3C9h

3 1/2002JNM2 Basic Elements of Assembly Language Character and String Constants –A single or a string of characters –Enclosed in either single or double quotes –Embedded quotes are permitted ‘An “embedded quote” within quotation marks’

4 1/2002JNM3 Basic Elements of Assembly Language Reserved Words –Instruction Mnemonics –Directives –Attributes (BYTE or WORD) –Operators –Predefined Symbols A complete list of MASM reserved words are in Appendix D (4 th Edition)

5 1/2002JNM4 Names (Identifiers) Used to identify variables, constants, procedures, or code labels. –Max 247 characters –Not case-sensitive –First character can be a letter, ‘_’, ‘$’, ‘@’ –Subsequent characters may also be digits. –Cannot use an assembler reserved word. Should make identifier names descriptive and easy to understand Avoid @ as first character.

6 1/2002JNM5 Examples Mystring db “this is a string”,0 –Mystring is the name Length = $ - mystring –Length is a reserved word (can not use) Loop1: –Loop1 is the label for a loop instruction Note difference between data names and code labels –in the data section (no colon after the name) –In the code section (colon after the name)

7 1/2002JNM6 Assembly Language Statements Generally fall into two classes: Instructions - Executable Statements Directives – statements that provide information to the assembler about how to generate executable code

8 1/2002JNM7 General Format of a Statement [name] [mnemonic] [operands] [;comment] For statements, all of the fields are optional Statements are free-form – they can be written in any column with any number of spaces between each operand Blank lines are permitted Must be written on a single line and not pass column 128 (use / for continuation of line)

9 1/2002JNM8 Directives A statement that is recognized and acted upon by the assembler as the program’s source code is being assembled. Used for defining logical segments, choosing a memory module, defining variables, creating procedures, ….data (directive to identify the area of a program that contains the data variables) Count db 50 (db is a directive that tells the assembler to create storage for a byte named count and initialize it to 50.

10 1/2002JNM9 Standard Assembler Directives

11 1/2002JNM10 Data Allocation Directives Char1 db ‘A’hex db 41h Signed1 db -128dec db 65 Signed2 db +127bin db 01000001b Unsigned db 255hex2 db 0A3h

12 1/2002JNM11 More MASM Directives There are hundreds of directives. Will only use a small number of directives Appendix D.7 (4 th Edition) is a complete listing of directives and operators

13 1/2002JNM12 Instructions A statement that is executed by the processor at runtime Fall into five general categories –Data transfer (mov ax, 5) –Arithmetic (add ax, 20) –Transfer of control (call MySub) –Logical (Jz next1) –Input/output (In al, 20)

14 1/2002JNM13 General Format of an Instruction Label (optional) Instruction mnemonic (required) Operand(s) (usually required) Comment (optional) A source code line may have only a label or comment. Label:Mnemonic;CommentOperand(s)

15 1/2002JNM14 Labels An identifier that acts as a place marker for either instructions or data Target: Mov ax, bx … Jmp target

16 1/2002JNM15 Instruction Mnemonics A short word that identifies the operation carried out by an instruction Movassign one value to another Addadd two values Subsubtract one value from another Callcall a procedure

17 1/2002JNM16 Formatting of Instructions and Number of Operands Needed Mnemonic destination operand, source operand HLT; zero operands INC AX; one operand MOV AX, 100; two operands SHLD DX, AX, 4; three operands Different instructions use different numbers of operands as shown above.

18 1/2002JNM17 Operands A memory operand is specified by either the name of a variable or a register that holds the address of a variable. A variable name implies the address of the variable; 96 constant operand 2 + 4 constant expression operand Eaxregister operand Countvariable operand

19 1/2002JNM18 Comments Single line comments begin with a semicolon ; Words after the semicolon are comments. ; Comments may begin anywhere on a line You will need to have comments at least every two lines of code for this class Block comments begin with the comment directive a user-specified symbol COMMENT & This line is a comment. So is this line. The ampersand symbol is personal choice. &


Download ppt "1/2002JNM1 Basic Elements of Assembly Language Integer Constants –If no radix is given, the integer is assumed to be decimal. Int 21h  Int 21 –A hexadecimal."

Similar presentations


Ads by Google