Afrikaans
Akan
Albanian
Amharic
Arabic
Armenian
Azerbaijani
Basque
Belarusian
Bemba
Bengali
Bihari
Bosnian
Breton
Bulgarian
Cambodian
Catalan
Cebuano
Cherokee
Chichewa
Chinese (Simplified)
Chinese (Traditional)
Corsican
Croatian
Czech
Danish
Dutch
English
Esperanto
Estonian
Ewe
Faroese
Filipino
Finnish
French
Frisian
Ga
Galician
Georgian
German
Greek
Guarani
Gujarati
Haitian Creole
Hausa
Hawaiian
Hebrew
Hindi
Hmong
Hungarian
Icelandic
Igbo
Indonesian
Interlingua
Irish
Italian
Japanese
Javanese
Kannada
Kazakh
Kinyarwanda
Kirundi
Kongo
Korean
Krio (Sierra Leone)
Kurdish
Kurdish (Soranรฎ)
Kyrgyz
Laothian
Latin
Latvian
Lingala
Lithuanian
Lozi
Luganda
Luo
Luxembourgish
Macedonian
Malagasy
Malay
Malayalam
Maltese
Maori
Marathi
Mauritian Creole
Moldavian
Mongolian
Myanmar (Burmese)
Montenegrin
Nepali
Nigerian Pidgin
Northern Sotho
Norwegian
Norwegian (Nynorsk)
Occitan
Oriya
Oromo
Pashto
Polish
Portuguese (Brazil)
Portuguese (Portugal)
Punjabi
Quechua
Romanian
Romansh
Runyakitara
Russian
Samoan
Scots Gaelic
Serbian
Serbo-Croatian
Sesotho
Setswana
Seychellois Creole
Shona
Sindhi
Sinhalese
Slovak
Slovenian
Somali
Spanish
Spanish (Latin American)
Sundanese
Swahili
Swedish
Tajik
Tamil
Tatar
Telugu
Thai
Tigrinya
Tonga
Tshiluba
Tumbuka
Turkish
Turkmen
Twi
Uighur
Ukrainian
Urdu
Uzbek
Vietnamese
Welsh
Wolof
Xhosa
Yiddish
Yoruba
Zulu
1
- [Instructor] We've looked at the MASM32 assembler
2
but we'll be using the GoAsm64 assembler from here on in.
3
The assembler instructions are the same
4
and the syntax is largely similar.
5
With the coding examples now,
6
we'll start to build up
7
our file encryptor demonstration program.
8
I've got a new GoAsm64 classic console project opened
9
called an enigmatic.
10
I'll make a couple of changes to
11
the skeleton Easy Code provides.
12
I'll change the constant null to zero
13
and check change the code to call, GetModuleHandleA.
14
At the machine level,
15
our smallest data type is a byte
16
which we define with the declaration DB.
17
So in the data section we can, write, for example
18
slot1 db, and we'll set it to the value five,
19
slot2 db, we'll set that to the value two,
20
slot3 db, and we'll set that to the value three.
21
Sometimes it's useful to declare a number of variables
22
each with the same value.
23
We can do this with the juke keyword.
24
For example, making a three byte array,
25
each with the value one
26
we can say settings db three bytes
27
with a duplicated value of one.
28
We've used standard decimal values to
29
initialize these variables
30
but sometimes we want to use a hexadecimal value.
31
You can optionally proceed a hexadecimal value with a zero
32
but it's necessary to add a suffix of h.
33
For example, plug1 db 2Fh,
34
plug2 db 16h.
35
In MASM, we have a dot data question mark section.
36
However, in GoAsm, if we don't want to initialize
37
the variable we just declare it with a question mark.
38
Rotten db question mark.
39
The assembler doesn't have a string data type
40
but as we've seen it does recognize a string
41
as a sequence of bytes
42
so we can use the welcome db Enigma style file encryptor.
43
And this declares an array of bytes, which has length 27.
44
We can also combine data declarations on a line,
45
so we'll add a carriage return
46
and line feed to the welcome line with 0Dh, 0Ah.
47
We can declare a double bytes,
48
a word in assembler terminology with a DW declaration
49
and a 32 bit value with a double word DD declaration.
50
We declare a full 64 bit value as DQ.
51
Let's declare five quad-word rotor variables
52
and initialize them with hexadecimal values.
53
Okay, I'll save this now.
54
Well, we won't be using them in this course.
55
GoAsm also allows us to declare a variable
56
of 10 bytes using the mnemonic DT.
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.