zoukankan      html  css  js  c++  java
  • 寒假汇编语言作业(4)

    程序设计项目四

     

    编程计算x(x>2)的y(y>2)次方。使用add指令实现。

    另,若学到第10章,使用两种方式实现:

    (1)只使用add指令实现;

    (2)只使用mul指令实现;

    并将计算式显示在屏幕中央。

     

    例如:

    计算4的3次方。在屏幕中央显示格式如下:

    4

    ^

    3

    -----

    64

     

    注意:结果不能超过16位寄存器可存储的最大值。

    参考代码:

     //坐标不正确,切用ADD的方法没有想出来

      1 assume cs:code
      2 data segment
      3         dw 1h
      4         dw 2h
      5         dd 0
      6         dw 0ah
      7         dw 3 dup (0)
      8 data ends
      9 
     10 stack segment
     11         dw 16 dup()
     12 stack ends
     13 
     14 code segment
     15 start:
     16         mov ax,data
     17         mov ds,ax
     18         mov ax,stack
     19         mov ss,ax
     20         mov sp,20h
     21         mov ax,0b800h
     22         mov es,ax
     23 ;        call get_1             ;用add 尚没有方法
     24         call get_2
     25         mov ax,ds:[0]
     26         mov di,280h
     27         call show_8
     28         mov ax,ds:[2]
     29         mov di,320h
     30         call show_8
     31         mov di,3c0h
     32         mov ax,'^'
     33         mov ah,71h
     34         mov es:[di],ax
     35         mov di,460h
     36         call show_16
     37         mov ax,4c00h
     38         int 21h
     39 
     40     show_8:
     41         mov bx,0
     42      s8:
     43         mov dx,0
     44         div word ptr ds:[8]
     45         add dx,30h
     46         push dx
     47         mov cx,ax
     48         inc bx
     49         jcxz ok8
     50         jmp s8
     51      ok8:
     52         mov cx,bx
     53      s8_:
     54         pop ax
     55         mov ah,71h
     56         mov es:[di],ax
     57         add di,2
     58         loop s8_
     59         ret
     60 
     61     show_16:
     62         mov ax,ds:[4]
     63         mov ds:[10],ax
     64         mov ax,ds:[6]
     65         mov ds:[12],ax
     66         mov bx,0
     67      s16:
     68         mov dx,0
     69         call divdw
     70         add dx,30h
     71         push dx
     72         inc bx
     73         mov cx,ax
     74         jcxz ok16
     75         jmp s16
     76      ok16:
     77         mov cx,bx
     78      ok16_:
     79         pop ax
     80         mov ah,71h
     81         mov es:[di],ax
     82         add di,2
     83         loop ok16_
     84         ret
     85 
     86     get_1:
     87         ret
     88 
     89     get_2:                 ;mul
     90         mov dx,0
     91         mov ax,1
     92         mov cx,ds:[2]
     93      sg2:
     94         mul word ptr ds:[0]
     95         loop sg2
     96         mov ds:[4],ax
     97         mov ds:[6],dx
     98         ret
     99 
    100     divdw:
    101         mov ax,ds:[12]
    102         div word ptr ds:[8]
    103         mov ds:[12],ax
    104         mov ax,ds:[10]
    105         div word ptr ds:[8]
    106         mov ds:[10],ax
    107         mov ds:[14],ax
    108         or ax,ds:[12]
    109         ret
    110 
    111 code ends
    112 end start
    hj4.asm
  • 相关阅读:
    应用系统数据缓存设计
    解密SVM系列(二):SVM的理论基础(转载)
    机器学习6—SVM学习笔记
    机器学习5—logistic回归学习笔记
    Win7 64bit+Anaconda(3-5.0.1,Python3.6)+Pycharm(community-2017.3.3)+OpenCV(python‑3.4.0‑cp36‑cp36m)(转载)
    AI关注的网址
    机器学习4—朴素贝叶斯学习笔记
    机器学习3—决策树学习笔记
    机器学习2—K近邻算法学习笔记
    windows_64下python下载安装Numpy、Scipy、matplotlib模块
  • 原文地址:https://www.cnblogs.com/regconfi/p/4234740.html
Copyright © 2011-2022 走看看