You are on page 1of 5

ECE4270/ECE7210 LABORATORY 1 DEVELOPING AN ASSEMBLY PROGRAM OBJECTIVE To become familiar with the development systems software: screen editor,

assembler, linker, and debugger. After finishing this experiment, you should be able to do the following: 1. Use a text editor to create an assembly source code (.ASM) for a program in .EXE or .COM format. 2. Understand the general procedure to develop an assembly language program. 3. Use an assembler to create a file of objective code (.OBJ). 4. Use a linker to generate an executable file (.EXE or .COM). 5. Learn three basic DOS service routine function calls, INT 21H function 1, 2, and 9.

BACKGROUND HOW TO ASSEMBLE AND LINK A SOURCE FILE: A) To Create a .COM File: (assuming the filename is lab1a.asm) The following steps outline the general procedure for creating a .COM file. 1. Activate Turbo Assembler:
C:> tasm /zi/l lab1a.asm

2. Activate Linker:
C:> tlink /t lab1a

B) To Create An .EXE File: (assuming the filename is lab1b.asm) The following steps outline the general procedure for developing an .EXE file. 1. Activate Turbo Assembler:
C:> tasm /zi/l lab1b.asm

2. Activate Linker:
C:> tlink /v lab1b.obj

PRELAB NO PRELAB REPORT is required for this lab.

LABORATORY 1. Use the ConTEXT text editor (or any other editor you are familiar with) to create an .ASM file (that is, an ASCII file without special formatting, as in a .DOC file). Use the first sample program at the end of this document. 2. Use Turbo assembler system (TASM, TLINK) to create a .COM file, an .LST file, etc... 3. Repeat parts 1 & 2 above for the other two sample files, but this time create an .EXE, an .LST, etc. 4. Demonstrate these two executable files to your TA. 5. Look at the .LST files and contrast the different code generated for each sample program. 6. Use Turbo Debugger (e.g. type td lab1b.exe) to examine both .COM and .EXE files and to be familiar with the following operations: a) set a watch b) view variable content in memory c) set break points d) single step through the program

REPORT Answer the following questions. You will need to look at the .LST files, to use the debugger, and to read the book for the answers. 1) 2) 3) 4) 5) 6) 7) 8) What does .MODEL do? What does a TINY model imply? What about MEDIUM? What do .DATA, .CODE and .STACK do? Why the second program doesnt use them? Where is the STACK for the first program? What does .STARTUP do in each case? Why are they different? What is the function of the ASCII character $ ? (Try to remove it and see what happens) What does .EXIT do?

Sample Program Lab1a.com


;PROGRAM 1 OF LAB 1 ;FILENAME: lab1a.asm ;FILE FORMAT: COM .MODEL TINY .DATA MESSAGE DB DB OUTMSG DB INCHAR DB NEWLINE DB 'ECE4270 LAB1',0DH,0AH 'ENTER A CHARACTER FROM KEYBORD: $' 0DH,0AH,'THE CHARACTER YOU JUST ENTERED IS $' ? 0DH,0AH,'$'

.CODE .STARTUP LEA MOV INT MOV INT MOV LEA MOV INT MOV MOV INT MOV MOV INT .EXIT END DX,MESSAGE AH,9 21H AH,1 21H INCHAR,AL DX,OUTMSG AH,9 21H DL,INCHAR AH,2 21H DX,OFFSET NEWLINE AH,9 21H ;INITIALIZE THE PROGRAM ;PRINT A MESSAGE

;READ A CHARACTER FROM KEYBOARD

;PRINT A MESSAGE

;OUTPUT A CHARACTER TO THE SCREEN

;MOVE CURSOR TO NEXT LINE

Sample Program Lab1b.exe


;PROGRAM 2 OF LAB 1 ;FILENAME: Lab1b.asm ;FILE FORMAT: EXE STACK_SEG SEGMENT STACK DB 100 DUP(?) STACK_SEG ENDS

DATA_SEG SEGMENT 'DATA' MESSAGE OUTMSG INCHAR NEWLINE DATA_SEG ENDS

DB DB DB DB DB

'ECE4270 LAB1',0DH,0AH 'ENTER A CHARACTER FROM KEYBORD: $' 0DH,0AH,'THE CHARACTER YOU JUST ENTERED IS: $' ? 0DH,0AH,'$'

CODE_SEG SEGMENT PARA 'CODE' ASSUME CS:CODE_SEG, DS:DATA_SEG, SS:STACK_SEG MAIN PROC FAR MOV MOV MOV MOV LEA MOV INT MOV INT MOV LEA MOV INT MOV MOV INT MOV MOV INT .EXIT MAIN ENDP CODE_SEG ENDS END MAIN

AX,DATA_SEG DS,AX AX,STACK_SEG SS,AX DX,MESSAGE AH,9 21H AH,1 21H INCHAR,AL DX,OUTMSG AH,9 21H DL,INCHAR AH,2 21H DX,OFFSET NEWLINE AH,9 21H

;INITIALIZE THE PROGRAM

;PRINT MESSAGE

;READ A CHARACTER FROM KEYBOARD

;PRINT A MESSAGE

;OUTPUT A CHARACTER TO THE SCREEN

;MOVE CURSOR TO NEXT LINE

Sample Program Lab1c.exe


;PROGRAM 3 OF LAB 1 ;FILENAME: Lab1c.asm ;FILE FORMAT: EXE .MODEL MEDIUM .STACK 100H .DATA MESSAGE OUTMSG INCHAR NEWLINE .CODE .STARTUP MAIN PROC FAR LEA MOV INT MOV INT MOV LEA MOV INT MOV MOV INT MOV MOV INT .EXIT MAIN ENDP END ;INITIALIZE THE PROGRAM DX,MESSAGE AH,9 21H AH,1 21H INCHAR,AL DX,OUTMSG AH,9 21H DL,INCHAR AH,2 21H DX,OFFSET NEWLINE AH,9 21H ;PRINT MESSAGE DB DB DB DB DB 'ECE4270 LAB1',0DH,0AH 'ENTER A CHARACTER FROM KEYBORD: $' 0DH,0AH,'THE CHARACTER YOU JUST ENTERED IS: $' ? 0DH,0AH,'$'

;READ A CHARACTER FROM KEYBOARD

;PRINT A MESSAGE

;OUTPUT A CHARACTER TO THE SCREEN

;MOVE CURSOR TO NEXT LINE

You might also like