UMBC CMSC313

Project 0 Due: 16 Sep

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 jdoe1prj0.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:       jdoe1prj0.asm
;; Name            Jane Doe
;; login:          jdoe1
;; Date:           3 Sep 2004
;; Course:         CMSC-313
;; Description:    (Your psuedocode goes here.  Must be detailed)
;; Notes:          (As needed, such has how to assemble)
;;
;;
;;  jdoe1prj0.asm   a first program for nasm for Linux, Intel, gcc
;;
;; assemble:	    nasm -g -f elf -l jdoe1prj0.lst  jdoe1prj0.asm
;; link:            gcc -o jdoe1prj0  jdoe1prj0.o
;; run:             jdoe1prj0 
;; 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:       jdoe1prj0.asm
;; Name            Jane Doe
;; login:          jdoe1
;; Date:           3 Sep 2004
;; Course:         CMSC-313
;; Description:    (Your psuedocode goes here.  Must be detailed)
;; Notes:          (As needed, such has how to assemble)