UMBC CMSC313

Project 0 Due: 9 Feb

This project is worth 0 points because I am giving you the code to do it. The purpose of this project is to prove that you can use the assembler, before you have to do a real project.

Requirements Specfication

Create the source file jdoe2p0.asm, assembly it, link it, and run it. When it runs correctly, submit using Blackboard. Remember, the reason for doing this is to make sure that you know how to use the assemler!

The Answer

;; Filename:       jdoe2p0.asm
;; Name:           Ima Student
;; Email:          jdoe2@umbc.edu
;; Date:           3 Feb 2005
;; Course:         CMSC-313
;; Description:    (Your psuedocode goes here.  Must be detailed)
;; Notes:          (As needed, such has how to assemble)
;;
;;
;;  jdoe2p0.asm  a first program for nasm for Linux, Intel, gcc
;;
;; assemble:	nasm -f elf -l jdoe2p0.lst  jdoe2p0.asm
;; link:		gcc -o jdoe2p0  jdoe2p0.o
;; run:	        jdoe2p0 
;; output is:	Hello World 

	SECTION .data		; data section
msg:	db "Hello World",10	; the string to print, 10=cr
len:	equ $-msg		; "$" means "here"
				; len is a value, not an address

	SECTION .text		; code section
        global main		; make label available to linker 
main:				; standard  gcc  entry point
	
	mov	edx,len		; arg3, length of string to print
	mov	ecx,msg		; arg2, pointer to string
	mov	ebx,1		; arg1, where to write, screen
	mov	eax,4		; write command to int 80 hex
	int	0x80		; interrupt 80 hex, call kernel
	
	mov	ebx,0		; exit code, 0=normal
	mov	eax,1		; exit command to kernel
	int	0x80		; interrupt 80 hex, call kernel


Program Header Comment Block

Use the following comment block at the beginning of your source code:
;; Filename:       jdoe2p0.asm
;; Name:           Ima Student
;; Email:          jdoe2@umbc.edu 
;; Date:           3 Feb 2003
;; Course:         CMSC313 
;; Description:    (Your psuedocode goes here.  Must be detailed)
;; Notes:          (As needed, such has how to compile)