有谁知道如何在一个程序中为 8 位/16 位操作数执行所有四种数学运算(乘法、除法、减法和加法)。我最多可以使用 AL、BL、CL、DL 寄存器执行三个程序,但我无法理解之后应该在哪里存储这些值,因为 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