以下にこの電卓コードがあります。正常に動作しますが、「除算」にジャンプしません..私はまだアセンブリプログラミングを学習している最中です..これを理解する方法について助けが必要です...
.モデル小 .スタック 100h 。データ msg1 db 13,10,13,10, "最初の数字を入力してください: $" msg2 db 13,10, "2 番目の数値を入力してください: $" msgEr db 13,10、「エラー $」 msgCh db 13,10, "A を押して ADD 、S を SUBTRACT に、D を MULTIPLY に、F を DIVIDE に、X を押して EXIT : $ " msgSum db 13,10,13,10, "合計: $" msgDif db 13,10,13,10, "違い: $" msgDiv db 13,10,13,10, "商: $" msgMul db 13,10,13,10, "製品: $" 一時データベース? 。コード 始める: 移動斧、@data ムーブDS、斧 lea dx、msg1 移動ああ、09h 整数 21h 移動bx、0 開始1: 移動ああ、01h 整数 21h cmp al,0dh ジェネクスト1 移動ああ、0 サブアル、30h 押し斧 移動斧、10d マルチボックス ポップ bx bx、axを追加 jmp start1 次1: bxを押す lea dx,msg2 mov ああ、09h 整数 21h 移動 bx,0 開始 2: mov ああ、01h 整数 21h cmp al,0dh ジェチョイス 移動ああ、0 サブアル、30h 押し斧 移動斧、10d マルチボックス ポップ bx bx、axを追加 jmp start2 選択: lea dx、msgCh 移動ああ、09h 整数 21h 移動ああ、01h ムーブアンサー、アル 整数 21h cmp al,'f' で割る cmp al,'a' ジェ追加 cmp al,'s' 引き算する cmp al,'d' 掛ける cmp al,'x' 動くあ、4ch 整数 21h エラー: lea dx,msgEr mov ああ、09h 整数 21h ジャンプスタート 分割: ポップアックス div bx 押し斧 lea dx,msgDiv mov ああ、09h 整数 21h ポップアックス mov cx,0 移動 dx,0 移動 bx,10d jmp ブレーク 追加: ポップアックス ax、bxを追加 押し斧 lea dx、msgSum mov ああ、09h 整数 21h ポップアックス mov cx,0 移動 dx,0 移動 bx,10d jmp ブレーク 乗算: ポップアックス マルチボックス 押し斧 lea dx,msgMul mov ああ、09h 整数 21h ポップアックス mov cx,0 移動 dx,0 移動 bx,10d jmp ブレーク 減算: ポップアックス サブアックス、bx 押し斧 lea dx,msgDif mov ああ、09h 整数 21h ポップアックス mov cx,0 移動 dx,0 移動 bx,10d 壊す: div bx プッシュDX 移動 dx,0 株式会社cx または斧、斧 休憩 答え: ポップDX dl,30h を追加 mov ああ、02h 整数 21h ループ応答 ジャンプスタート 終了開始