汇编课程设计1

要求:把试验七的数据显示在屏幕上

  

assume cs:code
stack segment
    dw 0,0,0,0,0,0,0,0
stack ends
;******************************数据段******************************
data segment
  db ‘1975‘,‘1976‘,‘1977‘,‘1978‘,‘1979‘,‘1980‘,‘1981‘,‘1982‘,‘1983‘
  db ‘1984‘,‘1985‘,‘1986‘,‘1987‘,‘1988‘,‘1989‘,‘1990‘,‘1991‘,‘1992‘
  db ‘1993‘,‘1994‘,‘1995‘
    ; 21个年份的字符串
  dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
  dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000
    ;21年公司收入数据
  dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635
  dw 8226,11542,14430,15257,17800
    ;21年公司员工人数
  dd 21 dup (0)     ;21个人均年收入
  dw 10
data ends

code segment
start:
        mov ax,stack
        mov ss,ax
        mov sp,16

        mov ax,data
        mov ds,ax

        mov ax,0b800h
        mov es,ax

;计算人均收入
        mov si,84
        mov di,168
        mov bx,210
        mov cx,21

    jisuan:
        call div_dd
        add si,4
        add di,2
        add bx,4
        loop jisuan
;清屏
        call clear_scr
;显示年份数据
        mov bx,0
        mov bp,160
        mov cx,21
    year1:
        mov si,0
        push cx
        mov cx,4
    year2:
        call show_year
        add si,2
        inc bx
        loop year2
        add bp,160
        pop cx
        loop year1

;显示收入数据
        mov bx,84
        mov bp,180
        mov cx,21
    shouru:
        mov di,0
        call show_shouru
        add bx,4
        add bp,160
        loop shouru
;显示员工数据
        mov bx,168
        mov bp,200
        mov cx,21
    yuangong:
        mov di,0
        call word_show
        add bx,2
        add bp,160
        loop yuangong
;显示人均收入
        mov bx,210
        mov bp,220
        mov cx,21
    renjun:
        mov di,0
        call show_shouru
        add bx,4
        add bp,160
        loop renjun

        mov ax,4c00h
        int 21h

;dd除法运算
div_dd:
        push ax
        push dx
        mov dx,0
        mov ax,[si+2]
        div word ptr [di]
        mov [bx+2],ax
        mov ax,[si]
        div word ptr [di]
        mov [bx],ax
        pop dx
        pop ax
        ret

;清屏
clear_scr:
        push bp
        push cx
        mov bp,0
        mov cx,22
    clear1:
        mov si,0
        push cx
        mov cx,80
    clear2:
        mov byte ptr es:[bp+si],0168
        mov byte ptr es:[bp+si+1],0
        add si,2
        loop clear2
        add bp,160
        pop cx
        loop clear1
        pop cx
        pop bp
        ret

;显示一个字节的字符year
show_year:
        push ax
        mov al,[bx]
        mov es:[bp+si],al
        mov byte ptr es:[bp+si+1],02h
        pop ax
        ret

;显示dword型数据为字符串,存入显示区域
show_shouru:
        push ax
        push bx
        push cx
        push dx
        push si

        mov dx,ds:[bx+2]
        mov ax,ds:[bx]
        mov si,0
    s1:
        push ax
        mov ax,dx
        mov dx,0
        div word ptr ds:[294]
        mov bx,ax
        pop ax
        div word ptr ds:[294]
        push dx
        inc si
        mov dx,bx
        mov cx,ax
        jcxz ok1
        jmp short s1
    ok1:
        mov cx,dx
        jcxz ok2
        jmp short s1
    ok2:
        mov cx,si
    s2:
        pop ax
        add al,30h
        mov es:[bp+di],al
        mov byte ptr es:[bp+di+1],02h
        add di,2
        loop s2
        pop si
        pop dx
        pop cx
        pop bx
        pop ax
        ret

;转换word型数据为字符串
word_show:
        push ax
        push bx
        push cx
        push dx
        push si
        mov ax,ds:[bx]
        mov si,0
    s3:
        mov bl,al
        mov al,ah
        mov ah,0
        div byte ptr ds:[294]
        mov bh,al
        mov al,bl
        div byte ptr ds:[294]
        mov bl,ah
        mov ah,bh
        push bx
        mov cx,ax
        inc si
        jcxz ok3
        jmp short s3
    ok3:
        mov cx,si
    s4:
        pop ax
        add al,30h
        mov es:[bp+di],al
        mov byte ptr es:[bp+di+1],02h
        add di,2
        loop s4
        pop si
        pop dx
        pop cx
        pop bx
        pop ax
        ret

code ends
end start

 

时间: 2024-10-08 17:24:09

汇编课程设计1的相关文章

汇编课程设计

assume cs:codesg,ss:stack data segment db '1975','1976','1977','1978','1979','1980','1981','1982','1983' db '1984','1985','1986','1987','1988','1989','1990','1991','1992' db '1993','1994','1995' ;以上是表示21年的21个字符串 dd 16,22,382,1356,2390,8000,16000,2448

汇编实验课程设计1之设置时间半成品

;    感觉双休就想睡觉,这鬼天气,一直下雨.设置时间未完成,只是加了一个所谓的主界面;   display system time. press f1 to change the color displayed, press esc to return main list. f3 exit;    clear_screen 清空屏幕assume cs:codesgstacksg segment    dw 128 dup(0)stacksg endscodesg segment      

20155211课程设计个人结题报告

20155211课程设计个人结题报告 个人贡献 参与课设题目讨论及完成全过程 辅助调试代码 资料收集 撰写小组结题报告 实践过程中的问题及解决: 编译之后出现如下错误:..\OBJ\HZ.axf: error: L6050U: The code size of this image (47788 bytes) exceeds the maximum allowed for this version of the linker. 出现错误的原因是:没有完全破解. 解决办法是:按照D:\实验箱资料2

南京邮电大学课程设计——加速度检测应用

2周的课程设计花了3天(其实真相是花了2个小时就写好了,只是老师一会让我改这一会让我改那而已)..这个时间可能有点长了,况且读者们看以下的的题目或许就要开始嘲笑我了,"这么简单的一个东西居然还要用那么久"...哈哈,不喜勿吐槽.... 题目3.压力监测应用 (1) 检测压力是否超过阈值 (2) 若超过压力阈值,则通过一条短信通知联系人,短信内容需包含当前压力. (3) 可设置联系人名称和联系手机号码 (4) 可设置压力阈值 (5) 记录告警信息到数据库,方便查询 以下开始直接贴代码:

Android课程设计第六天欢迎界面(跳转)

注意:课程设计只为完成任务,不做细节描述~ package com.example.myapplication; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.view.View; import android.widget.TextView; /** * Created by 樱花落舞

软件工程课程设计指导随笔

本学期带14信息01班的<软件工程课程设计>,已经进入了尾声. 两周的课程设计,要求学生完成一个多角色的智能菜单系统,课程设计的任务是要求根据不同角色控制访问每个菜单项的权限,用户允许有多个角色:角色和用户都可以增加修改,另外只有管理员角色具有添加角色和用户的权限:而除开管理员之外的所有用户都不能调整角色和角色菜单:用户只能由管理员添加,而用户的个人信息又只能由个人修改:为了增加工作量,添加了一个日志功能,要求记住每次用户的登陆.退出时间和前端计算机的IP地址. 既然是软件工程的课程设计,当然

Android课程设计第二天界面排版

注意:课程设计只为完成任务,不做细节描述~ 老师叫我们做一个这个样子,然后.. 1 <?xml version="1.0" encoding="utf-8"?> 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:tools="http://schemas.android.com/tools"

java课程设计

程序设计实训报告 题目:计算数学表达式程序 1.课设目的 (1)复习巩固java语言的基础知识,进一步加深对java语言的理解和掌握 (2)课设为大家提供一个即动手又动脑,独立实践的机会.提高我们适应实际,编程的能力 (3)培养我们在项目开发中创新意识及能力,通过亲身实践,利用所学编写简单的面向对象程序,提高对面向对象及java语言的解释 2.设计题目分析 (1)由用户输入一个简单的四则运算表达式,求出其计算结果后显示 (2)允许在表达式中出现常用的数学函数,如取整.三角函数.倒数.平方根.平方

51单片机课程设计:基于DS18B20的温度报警器

51单片机课程设计:基于DS18B20的温度报警器 本程序用于读取DS18B20温度,同时具备报警功能,工程分为3个文件,main.c.temp.c.temp.h,经本人修改部分代码,适用于吉林农业大学51开发板,其他朋友亦可移植到其他型号开发板.工程文件在文章最下方. 1.main.c文件 /*********************************说明****************************************** 本程序用于读取温度检测模块DS18B20数值,并