NASMでblurrフィルタを実行するために、いくつかのピクセルを一緒に追加しようとしています。私は、00 + d3 + d8(0 + 211 + 216)の値を持つ3つのピクセルを追加することに成功しました。値0のピクセルをもう1つ追加しようとすると、変数ブラーの値が出力されません。NASMがバグ登録に値を追加する
更新:
私が別のadd
をコメントアウトした場合、値は私の出力ファイルに出力されますので、変数合計に追加はは、最大で3回行うことができるようです。
blurrTopRow:
;from 0 - 251 there will be no pixels above the active pixel
;set ah to 0 to be sure that no other values changes the byte
;save byte in al, ax should be [0000](ah) value(al)
mov ah, byte 0
mov al, byte [info + 0]
;store sum all pixels in sum, divition will be done here
add [sum], ax
;add pixel beside it (1)
;mov ah, byte 0
mov al, byte [info + 1]
;add the value to sum
;add [sum], ax If i add this value, the program stops working
;add the pixels below the first pixel
;move data to the first 8-bits
mov ah, 0
mov al, byte [info + 251]
add [sum], ax
;set the last 8-bits in the 16-bit register (ax) to 0
;to avoid messing up the value
mov ah, 0
mov al, byte [info + 252]
add [sum], ax
;devide the digit with 4
mov eax, 0
mov ax, [sum]
mov ebp, 4
mov edx, 0
idiv ebp
mov [blurr], al
ret
これは、私がまだ理解していないいくつかのバイトエラーまたは効果的なアドレッシングによるものだと思います。あなたはすべての私のコードを見たい場合は、しばらくの間pastebin
でそれを見つけることができます私はすでにこれをやった場合は特に、プログラムを壊し私合計で0を追加し、なぜ、私はスーパー混乱しています上のコード。
最高
セブ
_ "正しく実行されず、" _は問題の良い説明ではありません。何が起こり、デバッガは何を言いますか? – Jester
プログラムは[blurr]変数に格納されている2バイトを出力します。 4回目のADD記述を使用すると、ファイルに値は保存されません。 (私はresentllyこれを知った、問題の説明を変更します) 私はまだデバッガを試していませんが、私はすぐにそれになります、ただそれは間違いなく印刷することはできませんいくつかの空気を取り、私のフラストレーションのABITのxD –
をなだめるために必要引数として1を渡すので2バイト。とにかく、何も出力されていないことをどのようにチェックしましたか、そして入力ファイルは何ですか?デバッガで何を見つけましたか? – Jester