www.pudn.com > HEC-linux.zip > fileIO.asm


#fileIO.asm--------------------------------------------- 
.PB main 
.PV buffer -32 
.PV fname  -64 
 
#allocate local storage on stack 
PUSHQ $FP 
MOV $FP,$SP 
LQI $R7,64 
SUB $SP,$SP,$R7 
 
#read and print floating-point value 
LQI $R1,25 
INT 0 
LQI $R1,21 
INT 0 
 
LQI $R2,10 
LQI $R1,16 
INT 0 
LQI $R2,13 
LQI $R1,16 
INT 0 
 
#read and print an integer 
LQI $R3,0 
LQI $R1,24 
INT 0 
LQI $R3,0 
LQI $R1,20 
INT 0 
 
LQI $R2,10 
LQI $R1,16 
INT 0 
LQI $R2,13 
LQI $R1,16 
INT 0 
 
#read and print a string 
LAI $R2,$FP,buffer 
MOV $R7,$R2 
LQI $R1,22 
INT 0 
LQI $R1,18 
INT 0  
 
LQI $R2,10 
LQI $R1,16 
INT 0 
LQI $R2,13 
LQI $R1,16 
INT 0 
 
#set file name 
LAI $R2,$FP,fname 
MOV $R9,$R2 
LQI $R1,22 
INT 0 
 
#open a file, write a few bytes, then close 
LQI $R3,1 
LQI $R1,0 
INT 0 
MOV $R8,$R4 
 
MOV $R2,$R8 
LQI $R3,8 
MOV $R4,$R7 
LQI $R1,12 
INT 0 
 
MOV $R2,$R8 
LQI $R1,1 
INT 0 
 
#open file, move around, read a byte, then close 
MOV $R2,$R9 
LQI $R3,0 
LQI $R1,0 
INT 0 
MOV $R8,$R4 
 
MOV $R2,$R8 
LQI $R3,3 
LQI $R4,0 
LQI $R1,8 
INT 0 
 
MOV $R2,$R8 
LQI $R1,7 
INT 0 
MOV $R2,$R3 
LQI $R1,20 
INT 0 
 
LQI $R2,10 
LQI $R1,16 
INT 0 
LQI $R2,13 
LQI $R1,16 
INT 0 
 
MOV $R2,$R8 
LQI $R3,3 
MOV $R4,$R9 
LQI $R1,11 
INT 0 
 
MOV $R2,$R9 
LQI $R1,18 
INT 0 
 
MOV $R2,$R8 
LQI $R1,1 
INT 0 
 
#reclaim local storage 
MOV $SP,$FP 
POPQ $FP 
 
HALT 
.PE