2015-12-14 45 views
0

我是新來的彙編語言(MASM),我想從.txt文件讀取64位塊,對它們進行加密並將它們寫入另一個.txt文件。我試圖用這個代碼閱讀:如何從裝配中的文本文件中讀取64位塊

push offset fscanf_format 
push pointer_source 
call fscanf 
add esp,12 
cmp eax,0ffffffffh; 

其中fscanf_format被定義爲:

fscanf_format db "%lld",0 

我不能肯定它是否工作正常,我真的不知道如何使用阻止對他們進行操作。

+1

目前還不清楚你的'64 blocks'的意思......也許你想'fread'不'fscanf'。 – Jester

+0

我也不確定。重點是我必須讀取64位,加密它們,將它們寫入目標文件,然後轉到下一個64位並重復,直到到達源.txt文件的末尾。也許我應該使用fread,但我不知道如何。 –

+0

您的輸入文件是否包含數字作爲文本,或者不是? – Jester

回答

0

缺少一個參數:

 .data 
block64 dq  0      ;64 bit 
fscanf_format db "%lld",0    ;unsigned would be %llu 
     ;... 
     .code 
     ;... 
     push offset block64   ;offset of qword variable 
     push offset fscanf_format  ;format string "%lld",0 
     push pointer_source   ;file pointer 
     call fscanf 
     add  esp,12 
     ... 
+0

我做了你的建議。你能告訴我爲什麼指針應該是qword嗎?我考慮過'pointer_source dd 0' –

+0

@ cma.2602 -db = 8位,dw = 16位,dd = 32位,dq = 64位。 – rcgldr