4097 = 1001 hex
so, the first instruction puts 0x10010000 into register t0. lui is “load upper immediate”, with “upper” meaning the upper 16 bits, and “immediate” meaning that you are giving it a literal value (4097). 4097 as an “upper” value becomes 0x10010000.
ori is “or immediate”, with 8 being the immediate value, so the resulting address in a0 is 0x10010008, which is the address where Aarray lives.
The final instruction lw is “load word” which loads from the memory address in t0 (which at this point is still just 0x10010000) plus 4 bytes (the 4 is an offset from t0 and results in an address where ALength lives) 4 bytes of data into a1.
Related Posts:
- Why shift a bit using sll and such in MIPs Assembly?
- Understanding how `lw` and `sw` actually work in a MIPS program
- MIPS: lw (load word) instruction
- MIPS assembly for a simple for loop
- mips .word function and differences between 2 codes
- Why doesn’t there exists a subi opcode for MIPS?
- What exactly does the lb instruction do?
- What is the difference between la and li in opcodes in MIPS?
- what is the use of ori in this part of MIPS code?
- Storing a user’s input in MIPS
- Integer absolute value in MIPS?
- Greater than, less than equal, greater than equal in MIPS
- MIPS program jr $ra instructions and stack handling
- Subtract two input numbers
- Assembly language (MIPS) difference betweent addi and add
- MIPS Address out of range (MARS)
- Difference between “addi” and “add” for pseudoinstruction “move” in MIPS?
- sorting array in mips (assembly)
- Multiplication by a power of 2 using Logical shifts in MIPS assembly
- MIPS instruction and machine code
- Convert from Java to MIPS
- Understanding Assembly MIPS .ALIGN and Memory Addressing
- What’s the purpose of the LEA instruction?
- Understanding cmp instruction
- assembly “mov” instruction
- Assembly code vs Machine code vs Object code?
- What does the MOVZBL instruction do in IA-32 AT&T syntax?
- What’s the purpose of the LEA instruction?
- How to move ST(0) to EAX?
- The point of test %eax %eax
- Assembly: How does fld st(0) duplicates the top stack value in the following code?
- What does the MOVZBL instruction do in IA-32 AT&T syntax?
- What’s the purpose of the LEA instruction?
- The difference between cmpl and cmp
- x86 cmpl and jne
- What is the meaning of XOR in x86 assembly?
- What is the function of the push / pop instructions used on registers in x86 assembly?
- What is callq instruction?
- What does the BEQ instruction do exactly?
- What’s the size of a QWORD on a 64-bit machine?
- what does .space do in mips?
- Purpose of ESI & EDI registers?
- What are the ESP and the EBP registers?
- IDIV operation in assembly (understanding)
- Convert C program into assembly code
- LC3 LEA instruction and the value stored
- lc3 LDR instruction and the value stored
- What does movslq do?
- Assembly language je jump function
- Bubble sort algorithm in MIPS
- What are .S files?
- How do I correctly use the mod operator in MIPS?
- explanation about push ebp and pop ebp instruction in assembly
- Why are rbp and rsp called general purpose registers?
- x86 assembly: How does the ‘subl’ command work in AT&T syntax
- what does the cmpq instruction do?
- Purpose of ESI & EDI registers?
- Difference between “move” and “li” in MIPS assembly language
- Bubble sort on array on Assembly Language
- Nasm Error: invalid combination of opcode and operands
- When and why do we sign extend and use cdq with mul/div?
- Assembly addq clarification
- How do AX, AH, AL map onto EAX?
- writing functions in assembler
- pop or add esp, 4 ? What is the difference?
- What is the difference between MOV and LEA?
- `testl` eax against eax?
- Difference between JE/JNE and JZ/JNZ
- what is a file handle and where it is useful for a programmer?
- Printing out a number in assembly language?
- How does `Skipcond` work in the MARIE assembly language?
- What are callee and caller saved registers?
- What does `dword ptr` mean?
- Difference between JA and JG in assembly
- what does the the dword operand do in assembly
- What’s the difference between a word and byte?
- MIPS to C Translation
- Difference between movq and movabsq in x86-64
- What is the jmpq command doing in this example
- What does the LEAL assembly instruction do?
- Assembly – JZ instruction after CMP
- [Binary Bomb – Phase 4
- What does bx lr do in ARM assembly language?
- Is it possible to “decompile” a Windows .exe? Or at least view the Assembly?
- ARM Assembler – How do I use CMP, BLT and BGT?
- MIPS architecture syscall instruction
- C to assembly – leaq instruction
- Converting a C program to MIPS
- While Loop in Mips (New to Mips)
- Display value found at given address gdb
- Understanding %rip register in intel assembly
- MIPS ‘nor’ usage in code
- error: “store address not aligned on word boundary”
- How can one see content of stack with GDB?
- X86 assembly – Handling the IDIV instruction
- How do I compile the asm generated by GCC?
- Printing from a declared array in MIPS
- error A2022: instruction operands must be the same size
- Dynamic vs Static instruction count
- Attempt to execute non-instruction in mips assembler?