[ASM]unpacked BCD 加減乘除程式碼

題目:
有兩個數字以NUM[0]、NUM[1]陣列方式存在記憶體中,試計算其加、減乘、除,然後將其「和」、「差」、「積」、「商」、「餘數」分別存回NUM[2]、NUM[3]...。以unpacked BCD完成
AUTHOR:UM

DATE:2015.11.30

;有兩個數字以NUM[0]、NUM[1]陣列方式存在記憶體中,試計算其加、減乘、除,然後將
;其「和」、「差」、「積」、「商」、「餘數」分別存回NUM[2]、NUM[3]...。
;以unpacked BCD完成
.MODEL SMALL
.STACK 100H
.DATA
NUM DW 8,5,0,0,0,0,0
.CODE
mov ax,@data
mov ds,ax
mov ax,NUM[0]
add ax,NUM[2]
aaa
mov NUM[4],ax;

mov ax,NUM[0]
sub ax,NUM[2]
aas
mov NUM[6],ax;

mov BX,NUM[0]
mov AX,NUM[2]
MUL BL
aam
mov NUM[8],ax;

mov ax,NUM[0]
mov cx,NUM[2]
AAD
DIV CL
push ax
mov ah,0
mov NUM[10],ax
pop ax
mov al,ah
mov ah,0
mov NUM[12],ax


BackDos:
mov ah,4ch
int 21h
end


  • 111

    a=['F' 'u' 'c' 'a']; b=length(a);
    c='I dont like you';d=size(a);
    e= double(a); f=e+10; char(f);
    whos a
    upper('Matlab')
    strncmp('00','00',2)
    strtok('lunch is good','0');
    eval(['g' '=' 'cos(pi)']);
    h=int2str([10 10.2 10.5]);
    i=dec2bin(1011);
    v1=[0 1 0 0 1 0 1 0];
    v2=[0 1 0 0 1 0 1 1];
    j=bitand(v1,v2);

  • 01

    .MODEL SMALL
    .STACK 100H
    .DATA
    COUNT db 0
    .CODE
    mov ax,@data
    mov ds,ax

    mov cx,55
    MYLOOP:

    mov ax,cx
    add ax,5
    mov dl,3
    div dl

    cmp ah,0
    jne ContinueThis
    inc COUNT
    ContinueThis:

    loop MYLOOP

    mov ah,4ch
    int 21h

    END