| UMBC CMSC211 |
mov ax, 9876h ; mov al, 0d5h ; ax =________________________________
Stuff DW 89ABh
MoreOfIt DB 10h
Nonsense DB 32h
...
mov ax, Stuff ;ax = _____________
mov ax, 7654h
mov ah, MoreOfIt ;ax = _____________
mov al, Nonsense ;ax = _____________
mov ax, 7654h
mov al, ah ;ax = _____________
mov ax, 7654h
mov ah, 'a' ;ax = _____________
(HINT: 'a' = 97 = 61h)
mov ax, 7654h
mov ax, 'a' ;ax = _____________
mov ah, MoreOfIt
mov al, MoreOfIt + 1 ;ax = ___________
mov ah, 'a'
mov al, 'a' + 1 ;ax = _____________
mov ah, 5
mov al, 8 ;ax = _____________
You owe me $nnnn
Pay the $2.00
One thing Leads to another
Enter amount: 1234 The amount was $1234
X = A / ( 5 + B );
if (A + 4 < B)
{
X = X / 2;
}
if ( (A < B) || (C = = 0) )
{
X = 12;
}
A db 12h
C dw 4321h
....
mov ax, 1234h ; ax = _____________
mov al, A ; ax = _____________
mov ax, 1234h
mov ax, C ; ax = _____________
mov ax, 3FFFh
inc ax ; ax = _____________
mov ax, 3FFFh
inc AL ; ax = _____________
mov ax, -1
mov bx, -1
imul bx ; ax = _____________
; dx = _____________
mov ax, 1234h
mov al, -1 ; ax = _____________
inc ax
mov ax, 1234h
inc al ; ax = _____________
mov al, 80h
cbw ; ax = _____________
mov al, 77h
cbw ; ax = _____________
mov ax, -1
mov bx, 3
mul bx ; ax = _____________
; dx = _____________
mov ax, -1 ; bx still contains 3
imul bx ; ax = _____________
; dx = _____________
mov ax, 1200h
dec ax ; ax = _____________
mov ax, 1200h
dec al ; ax = _____________
mov al, FEh
cbw ; ax = _____________
mov al, 5Eh
cbw ; ax = _____________
mov ax, -1
mov bx, 5
imul bx ; ax = _____________
; dx = _____________
mov ax, 3 ; bx is still 5
mul bx ; ax = _____________
; dx = _____________
mov ax. 3
imul bx ; ax = _____________
; dx = _____________
mov ax, 27
cwd ; ax = _____________
mov ax, 5
idiv bx ; ax = _____________
; dx = _____________
mov ax, -2
cwd
mov bx, 2
idiv bx ; ax = _____________
; dx = _____________
mov ax, -2
cwd
mov ax, 2
div bx ; ax = _____________
; dx = _____________
if (A > 14) A = 0;
if (X <= Y)
{
A = X;
}<
else
{
A = Y;
}
if ( (A >= B + 3) || (X = 100) ) br> M = 2 * M;
while (A < B)
{br>
A = A + 1;
B = B / 2;
}
if ( (a > 4) || (rate = 15) )
{
b = a + 10;
}
else
{
b = a;
}
while ( X > 0 )
{
X = X - 12; b
A = A + 1;
}
if ( C <= 5 )
{
X = X + 1;
}
else
{
Y = Y - 1;
}
if (( A == 4) && (B > X + 7))
{
Y = 0
}
if (A > X + 5)
{
Max = A;
}
else
{
Max = X + 5;
}
while (M != N)
{br>
if (M > N)
{
M = M - N;
}
else
{
N = N - M:
}
if ((Day = = 1) || (Day = = 7))
{
Weekend = 1 ;
}
if (X < 0)
{
Sgn = -1;
}
else if (X > 0)
{
Sgn = 1;
}
else
{
Sgn = 0;
}
if ((a > 4) || (rate = 15) )
{
b = a + 10;
}
else
{
b = a;
}
Count = 0;
ReadKey = getchar( ); /*ASCII value goes to al */
while (al == '*') br>
{
Count = Count + 1;
ReadKey = getchar( );
} /* Note: onlyone getchar( ) required! */
for( I = 1; I <= 80; I++)
{
printf("*");
}
Sum = 0;
for (I = 1; I <= 100; I++)
{
Sum = Sum +I;
}
printf("The sum is %d\n", Sum);
AMac MACRO a, b, c cmp a, b jz c ENDM
AMac MACRO a, b, c cmp a, b jz c ENDM
BMac MACRO a, b, z, c cmp a, b jz c ENDM
CMac MACRO a, b, z, c
cmp a, b
j&z& c
ENDM
LongJZ MACRO aLabel jnz around jmp aLabel around: ENDM
mov ax, 5
shl ax, 1 ; ax =_____________________
mov ax,10011100101b ; binary
and ax,11001001110b ; ax =_____________________
mov bl, 11110000B
and bl, 11001100B ; bl =_____________________
mov bl, 11110000B
or bl, 11001100B ; bl =_____________________
mov bl, 11110000B
xor bl, 11001100B ; bl =_____________________
mov bl, 11110000B
not bl ; bl =_____________________
mov bl, 11110000B
shl bl, 1 ; bl =_____________________
mov bl, 11110000B
rol bl, 1 ; bl =_____________________
mov bl, 11110000B
shr bl, 1 ; bl =_____________________
mov bl, 11110000B
sar bl, 1 ; bl =_____________________
MASK EQU 00111100B
mov al, 11100101B
and al, MASK ; al =_____________________
mov al, 11100101B
or al, MASK ; al =_____________________
mov al, 11100101B
xor al, MASK ; al =_____________________
mov al, 11100101B
not al ; al =_____________________
mov al, 11100101B
neg al ; al =_____________________
mov al, 11100101B
shr al, 1 ; al =_____________________
mov al, 11100101B
sar al, 1 ; al =_____________________
mov al, 11100101B
ror al, 1 ; al =_____________________
mov cx, 0
CountLoop:
shr ax, 1
jc Done ; Jump if carry bit set
inc cx
jmp CountLoop
mov bx, OFFSET SomeWds+4
mov ax, [4 + bx] ; ax =_____________________
mov ax, [-4 + bx] ; ax =_____________________
mov bx, 8
mov ax, [SomeWds + bx] ; ax =_____________________
mov ax, [SomeWds+4 + bx] ; ax =_____________________
mov ax, [SomeWds-2 + [bx] ; ax =_____________________
mov ax, [SomeWds+1+bxl ; ax =_____________________
(NOTE: the last one is a trick question, but it does have an
answer!)
mov bx, OFFSET SomeWds+4
mov ax, [4+bx] ; ax = _____________________
mov ax, [-4+bx] ; ax = _____________________
mov bx, 8
mov ax, [SomeWds+bx] ; ax = _____________________
mov ax, [SomeWds+4+bx] ; ax = _____________________
mov ax, [SomeWds-2+bx] ; ax = _____________________
mov ax. BYTE PTR SomeWds ; ax = _____________________
mov ax, SomeWds+1 ; ax = _____________________
A DB 98h B DB 76h C DW 5432h
A: B: C: D: _________________________________ | | | | | _________________________________
A DB 0Ah, lAh, 2Ah, 3Ah, 4Ah, 5Ah
B DW 0Bh, 1Bh, 2Bh, 3Bh, 4Bh
mov al, [A] ; al = ________________
mov al, [A + 3] ; al = ________________
mov ax, [B + 2] ; ax = ________________
mov ax, [B + 6] ; ax = ________________
mov ax, [B - 2] ; ax = ________________
mov al, 11001010B
shr al, 1 ; al = ________________
mov al, 11001010B
sar al, 1 ; al = ________________
mov al, 11001010B
ror al, 1 ; al = ________________
mov al, 11001010B
shl al, 1 ; al = ________________
mov al, 11001010B
sal al, 1 ; al = ________________
mov al, 11001010B
rol al, 1 ; al = ________________
mov cl, 5
mov al, 11001010B
rol al, cl ; al = ________________
mov al, Ofh
shl al, 1 ; al = ________________
mov al, 11001010B
and al, 01111000B ; al = ________________
mov al, 11001010B
or al, 01111000B ; al = ________________
mov al, 11001010B
xor al, 01111000B ; al = ________________
A DB 98h B DB 76h C DW 5432h
mov ax, 1234h ; ax = ______________ mov al, A ; ax = ______________ mov ax, 1234h ; mov ax, C ; ax = ______________ mov ax, 1234h mov ax, WORD PTR A ; ax = ______________ mov ax, 1234h mov ax, WORD PTR B ; ax = ______________ mov ax, 1234h mov ah, BYTE PTR C ; ax = ______________
P DW 5, 18, 4, 23, -7, 432, 277, 1
mov bx, OFFSET P
mov ax, [4 + bx] ; ax = ______________
mov bx, OFFSET P+6
mov ax, [4 + bx] ; ax = ______________
mov ax, [-4 + bx] ; ax = ______________
mov bx, 6
mov ax, [P + bx] ; ax = ______________
mov ax, [P - 2 + bx] ; ax = ______________
mov ax, [P + 6 + bx] ; ax = ______________
sub ax, ax
mov bx, OFFSET A
mov cx, 20
mov dx, 1
Aloop:
mov [bx], ax
add bx, 2
add dx, 2
loop Aloop
A DW 0A00h, 0A0lh, 0A02h, 0A03h B DW 0B00h, 0B0lh, 0B02h C DW 0C00h, 0C0lh, 0C02h, 0C03h, 0C04h N DW 3
mov ax, [B] ; ax = ______________
mov ax, [B+4] ; ax = ______________
mov ax, [B - 4] ; ax = ______________
mov al, BYTE PTR [B+1] ; ax = ______________
mov ax, [A+16] ; ax = ______________
mov bx, 4
mov ax, [A + bx] ; ax = ______________
mov ax, [A + 2 + bx] ; ax = ______________
mov bx, OFFSET B
mov ax, [bx] ; ax = ______________
mov ax, [2 + bx] ; ax = ______________
mov ax, [C - B + bx] ; ax = ______________
mov si, 2
mov ax, [bx + si] ; ax = ______________
mov ax, [2 + bx + si] ; ax = ______________
mov bx, N
shl bx, 1
mov ax, [A + bx] ; ax = ______________
mov ax, [A - 2 + bx] ; ax = ______________
C DB ? HexDig DB '0123456789ABCDEF' D DW ?
C DW 0C00h, 0C01h, 0C02h, 0C03h, 0C04h, 0C05h, 0C06h N DW 4
mov ax, [C+4] ; ax = ________________________
mov si, 6
mov ax, [C + si] ; ax = ________________________
mov ax, [C - 2 + si] ; ax = ________________________
mov bx, OFFSET C
mov ax, [bx + si] ; ax = ________________________
mov bx, N
shl bx, 1
mov ax, [C + bx] ; ax = ________________________
;
mov ax, [C - 2 + bx] ; ax = ________________________
023A:2130, 04413:0002, 033A:1137 _________________________(lowest address) _________________________ _________________________ (highest address)
24A2:0123, 213B:3810, 2322:0A31 low _________________________ _________________________ high _________________________
Cmd Len
|
\/
_____________________________________________________________
| | | | | | | | | | |
_____________________________________________________________
| | | | | | | | | | |
_____________________________________________________________
| | | | | | | | | | |
_____________________________________________________________
SegA SEGMENT PUBLIC A DW ? SegA ENDS SegB SEGMENT PUBLIC B DW ? SegB ENDS SegC SEGMENT PUBLIC C DW ? SegC ENDS
ASSSUME ds : SegA, es : SegB
mov A, ax ; override = _________________________ mov B, ax ; override = _________________________ mov C, ax ; override = _________________________ mov [B+bx], ax ; override = _________________________ mov bx, OFFSET B mov[2+bx], ax ; override = _________________________
SegA SEGMENT PUBLIC A DW ? SegA ENDS SegB SEGMENT PUBLIC B DW ? SegB ENDS SegC SEGMENT PUBLIC C DW ? SegC ENDS
mov A, ax ; override = _________________________ mov B, ax ; override = _________________________ mov C, ax ; override = _________________________ mov bx, OFFSET B mov [2+bx], ax ; override = _________________________ mov bx, 2 mov [B+bx], ax ; override = _________________________
int absdif( int x, int y)
{
if ( x > y )
{
return ( x - y );
}
else
{
return ( y - x );
}
}
mov ax, 104
push ax
mov ax, -86
push ax
call TestProc; assuming small model
...
...
TestProc PROC
push bp
mov bp, sp
mov ax, 77
push ax
<you are here>
_________________________ high addresses _________________________ _________________________ _________________________ BP-> _________________________ _________________________ _________________________ _________________________ _________________________ low addresses
void SetIt( int *x, int y )
{
x= y;
}
.MODEL SMALL
x EQU DWORD PTR
y EQU WORD PTR
SetIT PROC
push bp
mov bp, sp
push _________________________
push _________________________
push _________________________
___ si, x
mov ax, ___
mov __ , ax
pop _________________________
pop _________________________
pop _________________________
pop _________________________
ret
SetIt ENDP
mov ax, 18 push ax mov ax, -7 push ax call aProc
push bp mov bp, sp mov ax, 234 push ax
[ -2 + bp] _________________________ [bp] _________________________ [2 + bp] _________________________ [4 + bp] _________________________
int sign( int x )
{
if ( x < 0 )
{
return -1;
}
else if ( x == 0 )
{
return 0;
}
else
{
return 1
}
}
mov ax, 123
push ax
mov ax, -22
push ax
call Subr
L1:
....
Subr PROC
push bp
mov bp,sp
sub sp,4
mov [bp - 4], 44
orig. bp -> _________________________
orig. sp -> _________________________
_________________________
_________________________
_________________________
_________________________
_________________________
_________________________
_________________________
_________________________