Can someone check this please

  • #1

Homework Statement



If the content of d0 is $30 state in words what each of the following numbered instructions will do when placed immediately after the test instruction below
tst d0


Homework Equations



a) bne fred
b) beq fred
c) bpl fred
d) bmi fred


The Attempt at a Solution



a) bne fred = [go to label fred] [if d0] [not equal to $30]
b) beq fred = [go to label fred] [if d0] [equal to $30]
c) bpl fred = [go to label fred] [if d0] [ plus $30]
d) bmi fred = [go to label fred] [if d0] [minus $30]

example

TST or tst direct against zero instruction.

This is really the same as compare with zero

tst <effective address>

it subtracts 0 from a copy of the location specified and sets the condition flags accordingly.
If the value to be tested is positive then +N –0 = +N or if negative –N –0= -N or if 0 then 0-0 =0

tst d0 is d0 equal to 0, greater than zero or less than zero

beq joe = [go to label joe] [if d0] [equal to 0]
bgt dan= [go to label dan] [if d0] [greater than 0]
blt ben= [go to label ben] [if d0] [less than 0]


iam confused can someone help

If the content of d0 is $30 state in words what each of the following numbered instruction pairs will do.

a. cmpi #$30,d0
beq dan

b. cmp.l unknown,d0
bne dan

c. cmp.w d1,d0
bgt dan
 

Answers and Replies

  • #2
35,118
6,860

Homework Statement



If the content of d0 is $30 state in words what each of the following numbered instructions will do when placed immediately after the test instruction below
tst d0


Homework Equations



a) bne fred
b) beq fred
c) bpl fred
d) bmi fred


The Attempt at a Solution



a) bne fred = [go to label fred] [if d0] [not equal to $30]
b) beq fred = [go to label fred] [if d0] [equal to $30]
c) bpl fred = [go to label fred] [if d0] [ plus $30]
d) bmi fred = [go to label fred] [if d0] [minus $30]
These are not right. I'm a little rusty on Motorola 68000 assembly (which is what I think you are using), so I assume these instructions are inspecting the contents of the D0 register.
bne <label> - means branch to <label> if d0 is not equal to zero.
beq <label> - means branch to <label> if d0 is equal to zero.
bpl <label> - means branch to <label> if d0 is positive (plus).
bmi <label> - means branch to <label> if d0 is negative (minus).
example

TST or tst direct against zero instruction.

This is really the same as compare with zero

tst <effective address>

it subtracts 0 from a copy of the location specified and sets the condition flags accordingly.
If the value to be tested is positive then +N –0 = +N or if negative –N –0= -N or if 0 then 0-0 =0

tst d0 is d0 equal to 0, greater than zero or less than zero

beq joe = [go to label joe] [if d0] [equal to 0]
bgt dan= [go to label dan] [if d0] [greater than 0]
blt ben= [go to label ben] [if d0] [less than 0]
These all look fine to me.
iam confused can someone help

If the content of d0 is $30 state in words what each of the following numbered instruction pairs will do.

a. cmpi #$30,d0
beq dan

b. cmp.l unknown,d0
bne dan

c. cmp.w d1,d0
bgt dan

These compare instructions subtract the first operand from the second and set the N and Z flags as appropriate. For a, D0 - #$30 = what? Does control branch to label dan?
For b, you don't know what value is in unknown, but whatever value is in this location, it is either >= $30 or < $30.
For c, you don't know what is in D1, but you can say what will happen depending on what value is in that register.
 

Related Threads on Can someone check this please

Replies
10
Views
4K
Replies
5
Views
2K
Replies
0
Views
1K
  • Last Post
Replies
3
Views
2K
Replies
3
Views
1K
Replies
3
Views
10K
Replies
15
Views
822
  • Last Post
Replies
3
Views
1K
Top