リンクを覗いてみました。懐かしい。
キーボードから入力して、ディスプレイに出力するやり方はこのサイトにあるのでそれを利用すればできますね。
1+2のように間に空白を入れないで数字も一桁の加算という手抜き設定で組んでみます。
いい加減なものなので間違いもあると思います。流れだけ見てください。
長い間アセンブラで組んでいないのであらかた忘れています。
アドレス200番地にキーボードからの文字列を入れ、アドレス300番地に結果を入れるとすれば
---- MOV AH,A
---- MOV DX,200
---- MOV BYTE PTR[200] , 20
---- INT 21------------------- キーボードから文字列を取得
---- MOV AL,BYTE PTR [0202]----- 一番目の文字
---- SUB AL,'0'--------------- 文字コードを数字に('0'が使えたかどうか自信が無い。使えなければ0の文字コードを入れてください。)
---- MOV DL,BYTE PTR [0204]----- 二番目の文字
---- SUB DL,'0'----------------- 文字コードを数字に
---- MOV DH,0
---- MOV BL,BYTE PTR [0203]----- 演算記号
---- CMP BL,'+'----------------- 演算記号が'+'なら(ここも'+'が使えなければ'+'の文字コードを入れてください)
---- JE 1
---- CMP BL,'-'
---- JE 2
---- CMP BL,'*'
---- JE 2
---- CMP BL,'/'
---- JE 2
-1-- ADD AL,DL
---- MOV BL,AL
---- MOV AH,0
---- MOV DL,10
---- DIV DL
---- ADD AL,'0'---------------- 商を文字に変換
---- MOV BYTE PTR[300],AL
---- ADD AH,'0'---------------- 余りを文字に変換
---- MOV BYTE PTR[301],AH
-2-- MOV BYTE PTR[302],'$'----- 文字列終了コード
---- MOV AH , 9
---- MOV DX , 300
---- INT 21-------------------- 文字列出力
アドレス計算が面倒なのでアドレスを入れていません。分岐の箇所には番号を入れてあります。
私も最初はデバッガでアセンブラの勉強をしました。勉強されるにはデバッガの方が仕組みが理解できるのでいいのですが、本格的にアセンブラでプログラムを組むなら無料のVisual Studio 2008 Express EditionのVisual C++をインストールすればマクロアセンブラが使えるのでそちらの勉強をされるのがいいかもしれません。
マクロアセンブラの情報もマイクロソフトのサイトにあります。
Microsoft Macro Assembler リファレンス (MASM)で検索すれば見つかるかと思います。
中途半端な回答ですいません。
私のOSがX64なのでデバッガがないので動作確認ができません。WIN2000のマシンもあるのですが、アセンブラで本格的なプログラムを組む根性もなくなっています。簡単な電卓でもデバッガで組むには根性要りますね。
私も16ビットのアセンブラソースがあるので、それを勉強がてら64ビットに移植したいのですが、根性が無くて一歩も踏み出せていません。
補足
ありがとうございます。そのアドレスの書き方もよく分からないんですが教えていただけないでしょうか。「-----」の所ですかね? お願いします。