Ever heard a doctor ask you to rate your pain on a scale of 0 to 10? I remember when (after being hit by a car) they were asking me this, and I asked what ten was supposed to be. They said the worst pain I ever felt. I replied that obviously I would be at a ten since I’d never been injured this badly before.
I just thought it was kind of funny how terribly inaccurate the “pain scale” or whatever you want to call it is. Pain is something we’ve never been able to quantify, making it difficult for doctors to know what to do about your pain.
Something interesting to note, pain can be good, in fact that’s why pain exists. Pain is your body telling you NO. STOP THAT. Whatever it is you are doing to cause pain, your body is saying that it is a bad idea.
Some doctors think they need to eliminate pain. The truth is that they need to reduce pain into something manageable, not eliminate it. If someone is doing something that causes harm and not pain, they have no way to know they are doing something bad. If I had no pain throughout my ordeal, I would probably have taken longer to heal, because I would have done things that I shouldn’t have.
Writing some Assembly code because fuck. (To help a friend out with their programming course.) Actually I wrote this a long time back and am only posting it now in case his professor googles the submitted code and he doesn’t change it and then gets in trouble.
integer1: .byte 0
integer2: .byte 0
print_int: .byte 1
read_int: .byte 5
range: .byte 20
print_string: .byte 4
string: .asciiz " is the result\n"
main: lw $v0,read_int # service call
syscall # read an integer
bltz $v0,main # if less then zero, goto main
lw $s0,range # load range value
sub $t0,$s0,$v0 # subtract twenty to check if above 20
bgtz $t0,main # if above zero, goto main
sb $v0, integer1 # store in integer1
int2: lw $v0,read_int # service call
syscall # read an integer
bltz $v0,int2 # if <0, jump to int2
sub $t0,$s0,$v0 # sub 20 to check range
bgtz $t0,int2 # if >0, jump to int2
sb $v0, integer2 # store in integer2
lw $v0,integer1 # load integers
add $a0,$v0,$v1 # add them
add $a0,$a0,$a0 # add this to itself (x2)
add $a0,$a0,$a0 # add to self again (x4)
add $a0,$a0,$a0 # add AGAIN (x8)
lw $v0,print_int # service call (result is already in $a0)
syscall # print result
lw $v0,print_string # service call
la $a0,string # load address of string
syscall # print message string
j main # repeat all
All that fucking does is asks for two integers, checks if they are in the range of 0-20 (asking again if they aren’t), then adds them together and multiplies that by 8, then does it all again. I wasn’t allowed to use li (load immediate) or mul (multiply) or subi (subtract immediate), all of which would have made this a bit easier.
This is using the MIPS instruction set btw.