C++ PROGRAM INTO ASSEMBLY PEP/8 HOW DO I DO % 16 IN ASSEMBLY? WHAT I HAVE SO FAR
ID: 3860907 • Letter: C
Question
C++ PROGRAM INTO ASSEMBLY PEP/8
HOW DO I DO % 16 IN ASSEMBLY?
WHAT I HAVE SO FAR IN ASSEMBLY:
BR main
num: .BLOCK 2 ;variable
;
main: DECI num,d ;cin >> exam1
LDA num,d ;num = (num
ASRA ;%16 HAVING A PROBLEM HERE
STA num,d ;store the num
STRO msg,d ;cout << "num = "
DECO num,d ; << num
CHARO ' ',i ; << endl
STOP
msg: .ASCII "num = "
.END
+++++++++++++
C++PROGRAM:
#include
using namespace std;
int num;
int main () {
cin >> num;
num = num % 16;
cout << "num = " << num << endl;
return 0;
}
Explanation / Answer
Ans:
As you need assmebly to get reminder when num is divided by 16.
The DIV instruction in assembly provide both quotient and remainder (modulo) as needed in question. DIV r16 divides a 32-bit number in DX:AX by a 16-bit operand. Result is stored as : quotient in AX and remainder in DX.
Example:
So, DX will contain the reminder part.
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.