×
Samples Blogs Make Payment About Us Reviews 4.9/5 Order Now

Allow Users To Multiply 2 Arrays Using Yasm Assembly Language Assignment Solution

July 01, 2024
Rehana Magnus
Rehana Magnus
🇨🇦 Canada
Assembly Language
Rehana Magnus, PhD in Computer Science from the esteemed Acadia Institute of Technology, Canada. With 6 years of experience, specializes in assembly language programming. Proficient in low-level coding, optimizing performance, and enhancing system functionality.
Key Topics
  • Instructions
    • Objective
  • Requirements and Specifications
Tip of the day
Ensure you understand the dataset thoroughly before starting your machine learning assignment. Visualize the data, check for missing values, and identify patterns or anomalies to guide your model-building process effectively.
News
In 2024, universities have introduced new programming courses focusing on cybersecurity, machine learning, and artificial intelligence to better prepare students for modern IT careers.

Instructions

Objective

Write a program that allows users to multiply 2 arrays using Yasm assembly language.

Requirements and Specifications

The task in the main section is to explicitly follow the equation and iteratively add -3 to the indexed value in array a, subtract the indexed value in array b by 14 and finally addthese two parts and store the resulting value in memory location result.

You are allowed to use a maximum of three general purpose registers in this lab. You are not allowed to change any values in the memory locations of a and b. Some of the opcodes of use in this lab are:

  • mov - moving data from register-register, register-variable etc
  • lea - loading the effective address of a variable to a register.
  • add - adding two values in registers or in variables.
  • sub - subtract two values in registers or in variables

Screenshots of output

multiply-2-arrays-using-Yasm-Assembly-language

Source Code

segment .data a dw -4, 22, 144 ; array of 3 values b db -3, -16, 12 ; array of 3 values result dq 0 ; memory to result segment .text global main main: mov rcx, 0 ; rcx will be i in the loop, initialize to 0 sumloop: movsx rax, word[a + rcx*2] ; load word value a[i] add rax, -3 ; add -3 to get (-3 + a[i]) movsx rbx, byte[b + rcx] ; load byte value b[i] sub rbx, 14 ; subtract 14 to get (b[i]-14) add rax, rbx ; add (-3 + a[i]) + (b[i]-14) add [result], rax ; add this result to total result inc rcx ; increment i cmp rcx, 3 ; compare i with 3 jl sumloop ; repeat while i < 3 xor rax, rax ; zero out rax xor rbx, rbx ; zero out rbx xor rcx, rcx ; zero out rcx ret

Similar Samples

Explore our diverse collection of programming assignment samples at ProgrammingHomeworkHelp.com. Our examples cover various languages and topics, showcasing our expertise in delivering high-quality solutions tailored to academic needs. Discover how our samples can assist you in mastering programming concepts effectively.