における形式のファイルIこのMASM
201のような行を持つファイルを読み取るしようとしている読書; 18.5; 2500; 35(4情報、第二の一方はフロートであり、他はint型である)を
そして、これらの数値を10進数に変換したい(操作するために)。私は8086の浮動小数点の機能を使用しません。たとえば、「18,5」、私は18を1000プラス5倍100倍し、それらを合計して1つの数値にします(64kに達しません)。
私は論理を知っていますが、どうやってそれを行うのか分かりません。
私は ";"または「」または 『CR』(CRLFが行をマーク)
は、ここで私は
atoi proc near
mov ax,0
atoi_2:
cmp byte ptr[bx], 0
jz atoi_1
mov cx,10
mul cx
mov ch,0
mov cl,[bx]
add ax,cx
sub ax,'0'
inc bx
jmp atoi_2
atoi_1:
ret
atoi endp
read_char_convert proc near
put_on_string: ;To convert using atoi
cmp FileBuffer, AscSemiColon ; is it ";"?
je column_count
cmp FileBuffer, AscComma ; Is it ","?
je fechar_string_comma
cmp FileBuffer, CR ; Is it "CR"?
je close_string_CR
;I CANT DO THIS
;add String, i
;mov String, FileBuffer
;inc i
mov si, i
mov String[si], FileBuffer ;THIS IS GETTING ME AN ERROR
inc i
close_string_comma:
columnCount:
call columnCounter
fechar_string_CR:
mov SemiColonCounter, 0 ; going to the next line
read_char_convert endp
columnCounter proc near
inc i
mov si, i
mov String[si], 0
inc SemiColonCounter
cmp SemiColonCounter, 1
je chamaConversaoTempo
cmp SemiColonCounter, 2
je chamaConversaoBateria
cmp SemiColonCounter, 3
je chamaConversaoDistancia
cmp SemiColonCounter, 4
je chamaConversaoVelocidade
callTimeConversion:
call speedConversion
jmp return_columnCounter
callBatteryConversion:
call batteryConversion
jmp return_columnCounter
callDistanceConversion:
call distanceConversion
jmp return_columnCounter
callSpeedConversion:
call speedConversion
;jmp return_columnCounter
retourn_columnCounter:
ret
columnCounter endp
timeConversion proc near
lea bx, String
call atoi
mov T_PARCIAL1, ax
cmp nbr_lines, 1
jne returnTime
mov bx, T_INICIAL
mov T_PARCIAL1, bx
returnTime:
ret
timeConversion endp
batteryConversion proc near
lea bx, String
call atoi
;cmp b_int, 1 ; flag -> 1 int part, 0, decimal part
jne mult_100
mov ax, THOUSAND ;constant
mul ax
mov B_PARCIAL1, ax
jmp jump_100
mult_100:
mov ax, HUNDRED
mul ax
add B_PARCIAL1, ax
jump_100:
cmp nbr_lines, 1
jne returnBattery
mov bx, B_INICIAL
mov B_PARCIAL1, bx
returnBattery:
ret
batteryConversion endp
distanceConversion proc near
lea bx, String
call atoi
mov D_PARCIAL1, ax
cmp nbr_lines, 1
jne returnDistance
mov bx, D_INICIAL
mov D_PARCIAL1, bx
returnDistance:
ret
distanceConversion endp
speedConversion proc near
lea bx, String
call atoi
mov V_PARCIAL1, ax
cmp nbr_lines, 1
jne returnSpeed
mov bx, V_INICIAL
mov V_PARCIAL1, bx
returnSpeed:
ret
speedConversion endp
これまで持っているものだ君たちは私を助けることはできますか?おかげ
ねえ、おかげで、私はあなたが助けることができる、ということでした私はこれらの価値観を別々に読み取る方法を見つけましたか?私のプログラムは、今どのように – Caiorrs
これは https://pastebin.com/7Gv2VpJ7 、入力ファイルの例 https://pastebin.com/recaLkTF – Caiorrs