Question: Write a x64 MASM program: In your .data? segment, declare 4 integer variables (byte, word, dword, qword) in order of ascending size. In your .code

Write a x64 MASM program:

In your .data? segment, declare 4 integer variables (byte, word, dword, qword) in order of ascending size. In your .code segment, move the following (hexadecimal) values into your variables:

  • 7369206dh
  • 6dh
  • 202020216e754620h (you may need a register to help move this one)
  • 7361h

Using the WriteFile Windows API, display your data on the console.

Copy/Paste the console output to the end of your source code, and explain how this works. Submit your .asm file in Canvas

I did half of the code

comment ~

Author: NAme

Project: Project2-a

Description: Intro to data declarations

~

CONSOLE equ -11

extrn ExitProcess: PROTO

extrn GetStdHandle: PROTO

extrn WriteFile: PROTO

extrn ReadFile: PROTO

.data?

num1 byte ? ;handle to console standard out

num2 word ? ; number bytes actually written

num3 dword ?

num4 qword ?

stdout qword ?

numWrite qword ?

.code

mainCRTStartup PROC

sud rsp, 40 ;reserve shadow space

mov bnum, 6dh ; first value

;etc........

mov rax, num64

mov ax, num16 ;rax not cleared

mov rax, num64

mov eax, num32 ;clears upper half rax

;move immediate operands into rax

mov rax,num64

mov al, Offh ; rax not cleared

mov rax, num64

mov ax, Offffh ; rax not cleared

mov rsx, num64

mov eax, Offffffffh ; clears upper half rax

;Get handle id to console window & keyboard

add rsp, 40 ;restore shadow

mov rbx, 0 ;return code

Call ExitProcess ;windows exit

mainCRTStartup ENDP

END

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!