Question

In: Electrical Engineering

Develop and test an Intel 8086 assembly program by emu8086 amd dont use any extirnall lib...

Develop and test an Intel 8086 assembly program by emu8086 amd dont use any extirnall lib , that reads two decimal numbers x and y. Your program
should display the result of their:
1) Addition: x+y
2) Subtraction: x-y
3) Multiplication: x*y
4) Division: x / y
Notes:
 x and y are two-digit decimal numbers (i.e. 0-99).
 The program should display an error message if the value of y is zero, in the case of division.
 You can assume only positive numbers but you will get a bonus if your program can read and handle
negative numbers.
 You will get higher mark if your program accepts only two decimal digits (0-9) for each number and
print error message when the user tries to enter non-decimal digits (e.g. A-Z, or a-z, or any special
character).
Your program output should be similar to the following examples:
Example1: (x>y)
Please enter two 2-digit decimal
number:
X= 48
Y= 26
X + Y = 74
X – Y = 22
X * Y = 1248
X /Y = 1 with Remainder 22
Example2: (x<y)
Please enter two 2-digit decimal
number:
X= 12
Y= 37
X + Y = 49
X – Y = -25
X * Y = 444
X /Y = 0 with Remainder 12
Example3: (y=0)
Please enter two 2-digit decimal
number:
X= 56
Y= 00
X + Y = 56
X – Y = 56
X * Y = 00
X /Y = error overflow

Solutions

Expert Solution

TITLE Add and Substact and Multiply and Division (addSubMulDiv.com)

INCLUDE Irvine32.inc

.code

.data

main PROC

szMenu db "Now what do you want to do with those 2 numbers?",12,09

db 'Add (A)',12,09

db 'Subtract (S)',12,09

db 'Divide (D)',12,0

db 'Multiply (M)',12,09

db 'Exit (E)',12,09

db 'Selection: ',0:12,09,0

myMenu db 'Welcome!',12,09

db 'Enter integer 1:',0

myInteger2 db 'Enter integer 2:',0;12,09,0

szInvalidMenu db 12, 09, "Invalid Menu Choice!", 12, 09, 0

myTotal db 'Total:',12,09,0

.data?

Input1 dd ?

Input2 dd ?

Total dd?

.code

Start:

call Clrscr

move edx,offset myMenu

call WriteString

FirstNum:

call Readlnt

test eax,eax

jz Start

mov Input1,eax

SecondNum:

mov edx, offset myInteger2

call WriteString

call ReadInt

test eax,eax

jz SecondNum

mov Input2,eax

Menu:

mov edx, offset szMenu

call WriteString

call ReadChar

# check for addition operation and add input 1 and input 2

.if al=="A"//al=="a",

Call Crlf

mov eax,Total

mov eax, Input1

add eax, Input2

Call WriteInt

Call Crlf

;jmp start

# check for subtraction and subtract input 2 from input 1

.elseif al == "S" // al == "s"

Call Crlf

mov edx, offset myTotal

call WriteString

mov eax, Total

mov eax, Input1

sub eax, Input2

Call WriteInt

Call Crlf

;jmp start

# check for division operation and divide input 1 with input 2

,elseif al == "D" // al == "d"

Call Crlf

mov edx, offset myTotal

call WriteString

mov eax,Total

mov eax, Input1

div eax, Input2

Call WriteInt

Call Crlf

;jmp start

# check for Multplication operation and multiply input 1 and input 2

.elseif al == "M" // al == "m"

Call Crlf

mov edx, offset myTotal

call WriteString

mov eax, Total

mov eax, Input1

mul eax, Input2

Call WriteInt

Call Crlf

;jmp start

# check for operaion E to exit

.elseif al == "E" // al == "e"

exit

.else

mov edx. offset szlnvalidMenu

call WriteString

jmp Menu

.endif

call WaitMsg

exit

end Start

exit

main ENDP

END main

these code uses the Irvine32 library,so make you have it in your system.


Related Solutions

Assignment Description: Develop and test an Intel 8086 assembly program that reads two decimal numbers x...
Assignment Description: Develop and test an Intel 8086 assembly program that reads two decimal numbers x and y. Your program should display the result of their: 1) Addition: x+y 2) Subtraction: x-y 3) Multiplication: x*y 4) Division: x / y Notes:  x and y are two-digit decimal numbers (i.e. 0-99).  The program should display an error message if the value of y is zero, in the case of division.  You can assume only positive numbers but you...
NOTE: Write your program in 8086 language. Preferably, I'd like you to use emu8086, but you...
NOTE: Write your program in 8086 language. Preferably, I'd like you to use emu8086, but you can use any 8086 program and write and test them. Program: Write a program to do the following. (a) Scroll a window from row 5, column 10 to row 20, column 70, with a reverse video attribute. (b) Locate the cursor at row 10, column 20. (c) Display a line of text, such as, THIS TEXT IS IN THE WINDOW (d) After the line...
CPU Company, AMD vs Intel vs ARM For tablet or Laptop. or any devices that this...
CPU Company, AMD vs Intel vs ARM For tablet or Laptop. or any devices that this CPU is equipped with, Which one is the BEST, BALANCE, & the WORST? Need Reasons why
This program has to be written in assembly language using emu8086. Please choose the .EXE template....
This program has to be written in assembly language using emu8086. Please choose the .EXE template. The requirements and the action is contained in the docx file. You’ve been hired by Spacely Sprockets and they need to be able to write order information out to a file. Using all of the knowledge that we’ve gained in the last few sections on structures and files, you need to write a program that does the following: Design a structure that can hold...
Using the software Emulator EMU8086, write an assembly program that uses a loop to print "HELLO...
Using the software Emulator EMU8086, write an assembly program that uses a loop to print "HELLO WORLD" 3 times and "LIFE" 2 times. Example: HELLO WORLD HELLO WORLD HELLO WORLD LIFE LIFE   
Write an 8088/8086 assembly program that counts the length of a null terminated string that starts...
Write an 8088/8086 assembly program that counts the length of a null terminated string that starts at location STR.Assume string length will not exceed 255 character.Print the result on the screen?
Write an 8088/8086 assembly program that counts the length of a null terminated string that starts...
Write an 8088/8086 assembly program that counts the length of a null terminated string that starts at location STR.print The result on the screen Assume string length will not exceed 255 character.
Write in assembly 8086. Write a program to input nine numbers in 4*4 array and prints...
Write in assembly 8086. Write a program to input nine numbers in 4*4 array and prints the maximum value of each row and then prints the minimum of each column.
Develop an assembly language program for 89c51 to do following {Marks 10} Store any 8 values...
Develop an assembly language program for 89c51 to do following {Marks 10} Store any 8 values of one byte each anywhere in Scratch Pad area of RAM. You are bound to use loop to store values. Find Mean of these 8 values (use shift operator for division) and send it to port P2 (formula for to find mean is given below) Find the lowest number among the numbers saved in part (1), take its 2’s complement and send it to...
Write an Intel 8085 assembly program to find the largest of N numbers stored in memory...
Write an Intel 8085 assembly program to find the largest of N numbers stored in memory using the algorithm below. Hand trace (execute) the program showing the changes made to all affected registers and memory locations. Max = a(1) For i = n to N If max < a(i) then max = a(i) Next i
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT