Montaj için yeni bir başlangıç yapıyorum ve tüm db, dw, dd, şeylerin ne anlama geldiğini bilmiyorum. 1 + 1 yapan, bir değişkende saklayan ve sonucu görüntüleyen bu küçük betiği yazmaya çalıştım. Ben db, dw, dd şeyler ne anlama geldiğini anlamamız gerekirx86 Montaj - Kullanılacak değişken büyüklüğü (db, dw, dd)
.386
.model flat, stdcall
option casemap :none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\masm32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\masm32.lib
.data
num db ? ; set variable . Here is where I don't know what data type to use.
.code
start:
mov eax, 1 ; add 1 to eax register
mov ebx, 1 ; add 1 to ebx register
add eax, ebx ; add registers eax and ebx
push eax ; push eax into the stack
pop num ; pop eax into the variable num (when I tried it, it gave me an error, i think thats because of the data type)
invoke StdOut, addr num ; display num on the console.
invoke ExitProcess ; exit
end start
ve nasıl değişken ortam ve birleştirme ve bu tür bir şey etkiler: İşte benim şimdiye kadar kodudur. peşin
sayesinde Progrmr
db bayt, 8 bit, dw word 16 bit, dd çift sözcük 32 bit. Bu, diğer platformlarda x86 için bir kelime 32 bit ve yarım bit 16 bit olduğunu unutmayın. Diğerleri bir bayt 9 bit, vb. Bir db ile oluşturduğunuz şey, bir bayt koleksiyonudur. sadece imzasız char [] = ... gibi. –
'itme eax' /' pop [num] 'gülünç. Sadece "mov [num], eax". Veya 'mov dword [num], 1 + 1', toplayıcının, çalışma zamanı yerine, montaj zamanında 1 + 1 yapmasına izin vermek ve' mov m32, imm32' komutunu kodlamak. ('Dword' boyutuna ihtiyaç vardır çünkü boyuttan çıkacak bir kayıt işleneni yoktur). Veya 'mov eax, 1' /' add eax, 1'. –
Bu kitabın gerçek sayısından google'da daha yüksek olan RTFM sorularından biri olduğunu düşünüyorum.** Referans materyale ve öğreticilere bağlantılar için [x86 tag wiki] (http://stackoverflow.com/tags/x86/info) ** adresini ziyaret edin. Cevaplarda belirtilmeyen bir incelik, MASM'nin bir etiketin ardından bildirilen alanın boyutunu, kendisine atıfta bulunan talimatların işlenen büyüklüğünü ima edecek şekilde kullanmasıdır. NASM sözdiziminde herhangi bir garip tahmin-ne-demek istediğin şeyler olmaz: başka bir kaynağa bakmadan bir komutun nasıl bir araya getirileceğini anlatabilirsiniz. –