jlaroussi...just a quick note, at the 10.1 help reference you list, there is a section "Accessing and setting field values" and the very 1st sample code shows the following (shortened here) - I think you need to pay careful attention to the comment 'Access and print the row values by index position.' (which appears in my browser not to be justified left with the other comments so maybe you missed it or didn't fully understand):
with arcpy.da.SearchCursor(fc, ['STATE_NAME', 'POP2000']) as cursor:
for row in cursor:
# Access and print the row values by index position.
# state name: row[0]
# population: row[1]
#
print('{0} has a population of {1}'.format(row[0], row[1]))
The 'index position' is in this example the position within the list ['STATE_NAME', 'POP2000']; in other words, not related to the rows or fields in your attribute table in the way you may be thinking. The row object returned in each iteration (for row in cursor) is a single pair of state name and population values - so row[10] would have no meaning, unless of course you had 11 field names in the list to return values for....in that case, for a particular row, you'd ask for the last value from the 11th field name you specify with row[10].So, if you wanted to make this dynamic, returning only the last 2 row values regardless of the number of rows, you could leverage the count you said you are retrieving --- untested code below, but I think you could use that count (also dynamically fetched) something similar to the following:
# your count value as a var named 'count'
count = arcpy.GetCount.... etc.
with arcpy.da.SearchCursor(fc, ['fieldA']) as cursor:
row = cursor.next()
for i in range(count):
if i <= count - 2:
print('row {0} has a value of {1}'.format(str(i + 1), row[0]))
row = cursor.next()