汇编实验:x,y,z,v是数据段定义的16位有符号数,试写出计算下面表达式的指令序列。(v-(x*y+z-540))/x

汇编实验:
x,y,z,v是数据段定义的16位有符号数,试写出计算下面表达式的指令序列。(v-(x*y+z-540))/x

data segment
    x dw 10
    y dw 54
    z dw 0 
    v dw 100
    result dw ? 
    string1 db 'Quotient is:','$'
    string2 db 0ah,'Remainder is:','$'
data ends   
code segment
    assume cs:code,ds:data
start:
    mov ax, data  
    mov ds, ax
    mov ax, x
    imul y 
    mov cx,ax
    mov bx,dx 
    mov ax, z
    cwd
    add cx, ax
    adc bx, dx
    sub cx,540
    sbb bx,0
    mov ax,v
    cwd
    sub ax,cx
    sbb dx,bx
    idiv x
    mov bx, ax ;商在bx
    mov bp, dx ;余数在bp
    
    mov ah,09h 
    mov dx,seg string1
    mov ds,dx
    mov dx,offset string1
    int 21h 
    
    mov cx,4
gp1:       
    mov si,cx
    mov cl,4
    rol bx,cl
    mov dx,bx
    and dx,000fh
    cmp dx,10
    jl se1
    add dx,7
se1:
    add dx,30h
    mov ah,02h
    int 21h
    dec si
    mov cx,si
    jnz gp1
     
    mov ah,09h    
    mov dx,seg string2
    mov ds,dx
    mov dx,offset string2
    int 21h
    
    mov cx,4
gp2:       
    mov si,cx
    mov cl,4
    rol bp,cl
    mov dx,bp
    and dx,000fh
    cmp dx,10
    jl se2
    add dx,7
se2:
    add dx,30h
    mov ah,02h
    int 21h
    dec si
    mov cx,si
    jnz gp2 
    
    mov ah, 4ch 
    int 21h
code ends
    end start

运行截图:汇编实验:x,y,z,v是数据段定义的16位有符号数,试写出计算下面表达式的指令序列。(v-(x*y+z-540))/x_第1张图片

你可能感兴趣的:(汇编)