0

だから私は現在、クラスの課題に取り組んでいます。説明があればいつでも役に立ちますが、私は自分のために仕事をする必要はありません。私は本当に正しい方向にプッシュしたいだけです。私の課題は次のとおりです。

次の問題を解くアセンブリ言語プログラムを書きなさい。Albatross Company には、5 つの異なる製品 (1 から 5) を販売する 4 人の営業担当者 (1 から 4) がいます。1 日に 1 回、各販売員が各製品の売り上げを報告します。これらのレポートは、時間をかけてファイルに統合されます。ファイル内の各レコードには、次の 3 つの値が含まれます。日 (9 文字幅、右寄せ) プログラムは、ユーザーにファイル名の入力を求め、ファイルを処理し、各販売員と各製品の合計を報告する必要があります。プログラムをテストできるように、「Albatross.dat」というサンプル データ ファイルが提供されています。プログラムは、任意の数の販売レコードを含むデータ ファイルを処理できなければなりません。つまり、入力データ ファイルには、営業担当者と製品の組み合わせごとに複数のレコードが含まれる可能性があります。サンプル データ ファイルにたまたま含まれるレコード数を常に (そしてその数だけ) 予期するようにプログラムを作成しないでください。プログラムは、サンプル データ ファイルより少ないレコードを含むデータ ファイル、サンプル データ ファイル、最後にサンプル データ ファイルより多くのレコードを含むデータ ファイルを使用して実行することにより、テストおよび採点されます。サンプル データ ファイルにたまたま含まれるレコード数を常に (そしてその数だけ) 予期するようにプログラムを作成しないでください。プログラムは、サンプル データ ファイルより少ないレコードを含むデータ ファイル、サンプル データ ファイル、最後にサンプル データ ファイルより多くのレコードを含むデータ ファイルを使用して実行することにより、テストおよび採点されます。サンプル データ ファイルにたまたま含まれるレコード数を常に (そしてその数だけ) 予期するようにプログラムを作成しないでください。プログラムは、サンプル データ ファイルより少ないレコードを含むデータ ファイル、サンプル データ ファイル、最後にサンプル データ ファイルより多くのレコードを含むデータ ファイルを使用して実行することにより、テストおよび採点されます。

これまでのところ、これは私が持っているものです:

.data

askfile BYTE "Enter the data file name: ",0
fileMessage BYTE "Error while opening file: ",0dh,0ah,0
fileName BYTE 256 DUP(0)
byteCount DWORD ?
handle DWORD ?

.code
main PROC

mov edx,OFFSET askfile
call WriteString

;File name

mov edx,OFFSET filename
mov ecx,SIZEOF filename
call ReadString
mov byteCount,eax

;Open

mov edx,OFFSET filename
call OpenInputFile
cmp eax,INVALID_HANDLE_VALUE
je file_error
mov handle,eax
jmp Alpha

file_error:
mov edx,OFFSET fileMessage
call WriteString
jmp Omega

Alpha:
.data
BUFFER_SIZE = 17
buffer BYTE BUFFER_SIZE DUP(?)
bytesRead DWORD ?

.code

;Read from file

mov eax,handle
mov edx,OFFSET buffer
mov ecx,BUFFER_SIZE
call ReadFromFile
jc read_error
cmp eax,BUFFER_SIZE
jl Omega

read_error:
mov edx,OFFSET readMessage
call WriteString
jmp Omega


main ENDP
END main
4

1 に答える 1

0

a2i2a プロシージャーの作成とテストから始めます。これとファイル I/O があれば、あとは簡単です。

于 2013-11-05T10:14:22.887 に答える