8 BIT/16 BIT オペランドの 1 つのプログラムで 4 つの数学演算 (乗算、除算、減算、加算) をすべて実行する方法を知っている人はいますか? AL、BL、CL、DL レジスタを使用して最大 3 つのプログラムを実行できますが、DIV、MUL 操作の両方に AL が必要なため、後で値をどこに格納すればよいかわかりません。
誰かが少なくとも簡単なプログラムまたはロジックを思い付くことができれば、すべての努力が高く評価されます。
コード:
;================== Header ==================
; File: all.asm
; Author: Anurag Shukla
; Date: 25/02/2013
;================== Directives ==================
[BITS 16H]
[ORG 100H]
;================== Code Segment ==================
[SECTION .text]
mov al,0
mov bl,0
mov cl,0
mov dl,0
mov si,0
mov di,0
;================== Addition
mov bp, 10H
add bp, [NUMADD]
daa
mov di, 20H
sub di, [NUMSUB]
das
mov al, 10H
mov bl, 10H
mul bl
mov [RMUL],al
mov dl,[RMUL]
mov al, 10H
mov bl, 2H
div bl
int3
[SECTION .DATA]
NUMADD: DB 10H
NUMSUB: DB 10H
RSUB: DB 0H
RSUM: DB 0H
RMUL: DB 0H
RDIV: DB 0H