微机原理汇编实验二:二次函数计算程序设计

要求

实验内容:编制一个完整的二次函数y=x^2+5x+6计算程序,从键盘输入变量x的值,值的范围在(0 ~ 255),然后计算函数y的值(0 ~ 65535),并以十进制ASCII的形式显示在屏幕上。

思路

有了上一个实验的经验,这个实验就比较容易上手了。上个实验已经解决了进制转换的问题,所以只要对上次的代码进行复用即可。
先计算5 * x,然后再计算x * x,最后再加上6,仔细体会计算的顺序。

实现

data  segment
    input  db  10, 0, 10 dup(30h)   ; 存放变量输入缓冲区
    x      db  0                    ; 存放变量x的二进制值
    y      dw  0                    ; 存放函数y的二进制值
    output  db   5 dup(30h),'$'     ; 存放函数y的十进制ascii码
    mes1  db    'input x:',0ah,0dh,'$'
    mes2  db    'input second number',0ah,0dh,'$'
    mes3  db    'input computing symbol(+ or *) ',0ah,0dh,'$'
    mes4  db    0ah,0dh,'computing result:y=x^2+5x+6=','$'
ends
code segment  
    assume cs:code,ds:data,ss:stacks
main proc
    mov ax, data
    mov ds, ax 
    
    ;输入数字x
    mov dx,offset mes1
    mov ah,09h
    int 21h
    
    mov dx,offset input
    mov ah,0ah
    int 21h
    
    mov ch,00h
    mov cl,input+1
    cmp cl,05h
    jc l1
    mov cl,05h
l1: 
    mov si,offset input+2
    call ascb
    mov x,al
    
    mov bl,5         ;计算5*x
    mul bl
    mov bl,al
    mov al,x         ;计算x^2
    mul al
    add al,bl
    add al,6
      
    mov dx,ax
    mov si,offset output  ;结果送到output
    call basc

    
    mov dx,offset mes4
    mov ah,09h
    int 21h
    
    mov dx,offset output  ;输出结果
    mov ah,09h
    int 21h
    
    mov ah,7
    int 21h
    
    mov ax, 4c00h     ;程序返回
    int 21h    
main endp

ascb proc
    dec cl
    mov bx,000ah
    mov ah,00h
    mov al,[si]
    sub al,30h
a1:  
    imul bx
    mov dx,[si+01]
    and dx,00ffh
    add ax,dx
    sub ax,30h
    inc si
    loop a1
    ret
endp

basc proc
    add si,5
a2:  
    dec si
    mov ax,dx
    mov dx,0000h
    mov cx,000ah
    div cx
    xchg ax,dx
    add al,30h
    mov [si],al
    cmp dx,0000h
    jnz a2
    ret
endp
code ends
end main

运行截图

在这里插入图片描述
谢谢阅读,下次再见!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值