0

我尝试在汇编中写减法但是当我尝试例如44-12结果是36. 我的代码如下所示:

org 100h

start:    
mov ah, 09h 
    mov dx,  First 
    int 21h 

    mov ah, 01h 
    int 21h
    sub al,'0' 
    mov bl, 10
    mul bl

    mov [number1], al

    mov ah, 01h 
    int 21h
    sub al,'0' 


    add [number1], al

    mov ah, 09h
    mov dx,  Second 
    int 21h

    mov ah, 01h
    int 21h
    sub al,'0' 
    mov bl, 10
    mul bl

    mov [number2], al


    mov ah, 01h 
    int 21h
    sub al,'0' 

    add [number1], al



    mov bx, [number2]
    mov ax, [number1] 

    ;**************************sum*******************************************

    add ax,bx 

    mov bl, 10
    div bl

    mov ch,ah


    mov ah, 09h
    mov dx,nl
    int 21h



    add al, '0'
    mov dl, al
    mov ah,2
    int 21h

    add ch, '0'
    mov dl, ch
    mov ah, 2
    int 21h

    ; ***************************sub*************************************** 
    mov al, 0
    mov cl, 0
    mov ah, 0
    mov ch, 0
    mov bx, 0
    mov dx, 0


    mov dx, 27
    mov ax, 73



    mov bl, 0
    mov bl, 10      
    sub ax,dx


    div bl

    mov ch,ah


    mov ah, 09h
    mov dx,nl
    int 21h

    add al, '0'
    mov dl, al
    mov ah,2
    int 21h

    add ch, '0'
    mov dl, ch
    mov ah, 2
    int 21h



    ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    mov ah,0   
    int 16h

    mov     ax, 4C00h 

int     21h

number1 dw 0
number2 dw 0

First db "first :",10,13,"$"
Second db 10,13,"sec :",10,13,"$"
nl db "",10,13,"$"

当我做

mov dx, 12
mov ax, 44

结果是正确的。我有一个问题

1.我的变量有什么问题[number1][number2]

4

1 回答 1

1

您没有number2正确初始化:

mov [number2], al

mov ah, 01h 
int 21h
sub al,'0' 

add [number1], al

add [number1], al应该是add [number2], al

于 2014-04-26T18:54:42.383 回答