当前位置: 首页 > news >正文

寒假汇编语言作业(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

 

转载于:https://www.cnblogs.com/regconfi/p/4234740.html

相关文章:

  • 使用jni接口完成android本地程序的运行--具体的操作
  • java和c的本质--最重要的是启动
  • 脑子放放电
  • 关于ProjectServer定制化项目中心页面
  • c没有main函数/java没有main方法--语言运行的实质之实例
  • 深有体会内存对系统性能的重要性
  • 判断括号的匹配性的一种算法
  • 焦点图下面的索引小圆环
  • java虚拟机的启动实例--eclipse的方式
  • 本地方法中printf如何传给java--java系统级命名管道
  • OUYA游戏开发核心技术剖析大学霸内部资料
  • 解决windows 10 9926 中vmware安装的虚拟机无法桥接上网的问题
  • 字符设备驱动程序
  • html中#include file的使用方法
  • 天龙客户端的ResourceManager
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • C学习-枚举(九)
  • in typeof instanceof ===这些运算符有什么作用
  • Magento 1.x 中文订单打印乱码
  • ng6--错误信息小结(持续更新)
  • nodejs实现webservice问题总结
  • node和express搭建代理服务器(源码)
  • Odoo domain写法及运用
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • SQLServer插入数据
  • vue 个人积累(使用工具,组件)
  • VUE es6技巧写法(持续更新中~~~)
  • 初识 webpack
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 使用SAX解析XML
  • 微信开源mars源码分析1—上层samples分析
  • 在Docker Swarm上部署Apache Storm:第1部分
  • 智能合约开发环境搭建及Hello World合约
  • python最赚钱的4个方向,你最心动的是哪个?
  • 带你开发类似Pokemon Go的AR游戏
  • #《AI中文版》V3 第 1 章 概述
  • #AngularJS#$sce.trustAsResourceUrl
  • #stm32驱动外设模块总结w5500模块
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (9)目标检测_SSD的原理
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (新)网络工程师考点串讲与真题详解
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • .NET 8.0 中有哪些新的变化?
  • .NET 中什么样的类是可使用 await 异步等待的?
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • .NET开源快速、强大、免费的电子表格组件
  • .net使用excel的cells对象没有value方法——学习.net的Excel工作表问题