Type in the [login to view URL] program and get it working.
You can type in part of the program and then assemble it, as long as you have the last 3 lines in the program.
That is, you can type the first MOVZX section, and assemble it, to see how it works, as long as you have the "EXIT, main ENDP, END main" lines at the end of the programs.
After you get the program in and working, add something else that is interesting to it.
Tell me what you added to the program.
TITLE Data Transfer Examples
INCLUDE [login to view URL]
.data
val1 WORD 1000h
val2 WORD 2000h
arrayB BYTE 10h,20h,30h,40h,50h
arrayW WORD 100h,200h,300h
arrayD DWORD 10000h,20000h
.code
main PROC
; Demonstrating MOVZX instruction:
mov bx,0A69Bh
movzx eax,bx ; EAX = 0000A69Bh
movzx edx,bl ; EDX = 0000009Bh
movzx cx,bl ; CX = 009Bh
; Demonstrating MOVSX instruction:
mov bx,0A69Bh
movsx eax,bx ; EAX = FFFFA69Bh
movsx edx,bl ; EDX = FFFFFF9Bh
mov bl,7Bh
movsx cx,bl ; CX = 007Bh
; Memory-to-memory exchange:
mov ax,val1 ; AX = 1000h
xchg ax,val2 ; AX=2000h, val2=1000h
mov val1,ax ; val1 = 2000h
; Direct-Offset Addressing (byte array):
mov al,arrayB ; AL = 10h
mov al,[arrayB+1] ; AL = 20h
mov al,[arrayB+2] ; AL = 30h
; Direct-Offset Addressing (word array):
mov ax,arrayW ; AX = 100h
mov ax,[arrayW+2] ; AX = 200h
; Direct-Offset Addressing (doubleword array):
mov eax,arrayD ; EAX = 10000h
mov eax,[arrayD+4] ; EAX = 20000h
mov eax,[arrayD+4] ; EAX = 20000h
exit
main ENDP
END main
I have ~7 years of experience in C++ and over 3 in C#. I also write some Python code and recently Haskell, so the task will not be a problem for me.
Could you please contact me to discuss the details?
What exactly do you want to be added?