You are on page 1of 7

LAB REPORT

#4
SUBJECT: MICROPROCESSOR AND ASSEMBLY
LANGUAGE
SUMITTED TO: SIR AHMAD JUNAID
SUBMITTED BY: ESHA SAFDAR
CLASS CODE: CU-576-2017
DATED: 11th MAY 2019
Q)Write a program to implement the following arithmetic expressions.

ANSWER:
CODE:

INCLUDE C:\Irvine\Irvine32.inc
includelib C:\Irvine\Irvine32.lib

;Rval= -Xval + (Yval-Zval)

.data

RvalDWORD ?
Xval DWORD 20
Yval DWORD 30
Zval DWORD 40

.code
main PROC
moveax,Xval;20
negeax;-20
movebx,Yval;30
sub ebx,Zval;-10
add eax,ebx;-30
movRval,eax
call DumpRegs
exit ENDP

END main

OUTPUT:
CODE:

INCLUDE C:\Irvine\Irvine32.inc
includelib C:\Irvine\Irvine32.lib

;increment a value

.code
main PROC
mov eax,10000h
inceax
call DumpRegs
main ENDP
END main

OUTPUT:

CODE:

INCLUDE C:\Irvine\Irvine32.inc
includelib C:\Irvine\Irvine32.lib

;decrement a value

.code
main PROC
mov eax,10000h
deceax
call DumpRegs
main ENDP
END main

OUTPUT:

CODE:

INCLUDE C:\Irvine\Irvine32.inc
includelib C:\Irvine\Irvine32.lib

;overlapping values

.data
oneByte BYTE 78h
oneWord WORD 1234h
oneDword DWORD 12345678h

.code
main PROC
mov eax,0
moval,oneByte
movax,oneWord
moveax,oneDWord
mov ax,0
call DumpRegs
exit
main ENDP
END main

OUTPUT:
CODE:

INCLUDE C:\Irvine\Irvine32.inc
includelib C:\Irvine\Irvine32.lib

; zero flag example

.code
main PROC
mov cx,1
sub cx,1
mov ax,0FFFFh
inc ax
call DumpRegs
main ENDP
END main

OUTPUT:
CODE:

INCLUDE C:\Irvine\Irvine32.inc
includelib C:\Irvine\Irvine32.lib

; sign flag example

.code
main PROC
mov cx,0
sub cx,1
mov ax,7FFFh
add ax,2
call DumpRegs
main ENDP
END main

OUTPUT:

CODE:

INCLUDE C:\Irvine\Irvine32.inc
includelib C:\Irvine\Irvine32.lib

; Demonstrating MOVZX instruction

.code
main PROC
mov bx,0A69Bh
movzxeax,bx
movzxedx,bl
movzxcx,bl
call DumpRegs
main ENDP
END main

OUTPUT:

You might also like