Answer:
// program in C++.
#include <bits/stdc++.h>
using namespace std;
int main() {
// variable
int num;
cout<<"Enter the number between 20 and 98: ";
// read number
cin >> num;
while(num<20||num>98)
{
cout<<"Wrong input!!enter number between 20-98 only:";
cin>>num;
}
cout<<"The output is: ";
while(num % 10 != num /10)
{
// print numbers.
cout<<num<<" ";
// update num.
num--;
}
// display the number.
cout<<num<<endl;;
return 0;
}
Explanation:
Read a number from user and assign it to variable "num".Check if entered number is in between 20-98 or not.If input number is less than 20 or greater than 98 then ask again to enter a number between 20-98 until user enter a valid input.Then print the countdown from input number till both the digit of number are same.
Output:
Enter the number between 20 and 98: 99
Wrong input!!enter number between 20-98 only:12
Wrong input!!enter number between 20-98 only:93
The output is: 93 92 91 90 89 88
Enter the number between 20 and 98: 77
The output is: 77
Tendancy to crash hope that helped
Answer:
Output:
123456
123456
123456
123456
123456
123456
Explanation:
C Code:
#include <stdio.h>
int main() {
int n,i,j;
printf("Gimme a decimal value to use as n:");
scanf("%d",&n);
for(i=0;i<n;i++){
for(j=1;j<=n;j++){
printf("%d",j);
}
printf("\n");
}
return 0;
}
Equivalent assembly program:
.LC0:
.string "Gimme a decimal value to use as n:"
.LC1:
.string "%d"
main:
push rbp
mov rbp, rsp
sub rsp, 16
mov edi, OFFSET FLAT:.LC0
mov eax, 0
call printf
lea rax, [rbp-12]
mov rsi, rax
mov edi, OFFSET FLAT:.LC1
mov eax, 0
call scanf
mov DWORD PTR [rbp-4], 0
.L5:
mov eax, DWORD PTR [rbp-12]
cmp DWORD PTR [rbp-4], eax
jge .L2
mov DWORD PTR [rbp-8], 1
.L4:
mov eax, DWORD PTR [rbp-12]
cmp DWORD PTR [rbp-8], eax
jg .L3
mov eax, DWORD PTR [rbp-8]
mov esi, eax
mov edi, OFFSET FLAT:.LC1
mov eax, 0
call printf
add DWORD PTR [rbp-8], 1
jmp .L4
.L3:
mov edi, 10
call putchar
add DWORD PTR [rbp-4], 1
jmp .L5
.L2:
mov eax, 0
leave
ret
Input:
6
The program was first written with a c code, anf and subsequently translated to an assembly language.
Answer:
Given address = 94EA6
tag = 0 * 94 ( 10010100 )
line = 0 * 1 D 4 ( 111010100 )
word position = 0*6 ( 110 )
Explanation:
using the direct mapping method
Number of lines = 512
block size = 8 words
word offset =
= 3 bit
index bit =
= 9 bit
Tag = 20 - ( index bit + word offset ) = 20 - ( 3+9) = 8 bit
Given address = 94EA6
tag = 0 * 94 ( 10010100 )
line = 0 * 1 D 4 ( 111010100 )
word position = 0*6 ( 110 )