2 hglboke hglboke 于 2017.08.31 12:45 提问

汇编语言 王爽老师 课程设计1

assume cs:code

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'

dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000

dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
dw 11542,14430,15257,17800

data ends

temp segment
db 10 dup(0)
temp ends

stack segment
db 64 dup(0)
stack ends

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

mov ax,data
mov es,ax
mov ax,temp
mov ds,ax
mov si,0
mov bp,0
mov bx,0
mov di,0

mov cx,21
s: push cx
   mov ax,es:[bx]
   mov ds:[si],ax
   mov ax,es:[bx+2]
   mov ds:[si+2],ax
   mov byte ptr ds:[si+4],0

   mov dh,24
   sub dh,cl
   mov dl,3
   mov cl,2
   call show_str

   push dx
   mov ax,es:[84+bp]
   mov dx,es:[84+bp+2]
   call dtoc
   pop dx
   add dl,10
   call show_str

   push dx
   mov ax,es:[168+di]
   mov dx,0
   call dtoc
   pop dx
   add dl,10
   call show_str

   push dx
   push cx
   mov ax,es:[84+bp]
   mov dx,es:[84+bp+2]
   mov cx,es:[168+di]
   call divdw
   call dtoc
   pop cx
   pop dx
   add dl,10
   call show_str

   add bx,4
   add bp,4
   add di,2

   pop cx

loop s

mov ax,4c00h
int 21h

show_str:
push ax
push bx
push cx
push si
push di
push es

  mov bl,cl
  mov bh,0
  mov ax,0b800h
  mov es,ax
  mov al,0a0h
  mov ah,0
  mul dh
  mov di,ax
  mov al,2h
  mov ah,0
  mul dl
  add di,ax

  write_str:
      mov ch,0
      mov cl,[si]
      jcxz ok
      mov es:[di],cl
      mov es:[di+1],bl
      inc si
      add di,2
      jmp short write_str
 ok:
    pop es
    pop di
    pop si
    pop cx
    pop bx
    pop ax
    ret

divdw:
push bx

  push ax
  mov ax,dx
  mov dx,0
  div cx
  mov bx,ax
  pop ax
  div cx
  mov cx,dx
  mov dx,bx

  pop bx
  ret

dtoc:
push bx
push cx
push si
mov cx,0
push cx
mov bx,1
div_continue:
mov cx,10
call divdw
add cx,30H
push cx
inc bx

      mov cx,dx
      jcxz hzero
      jmp short div_continue
      hzero:
          mov cx,dx
          jcxz lzero
          jmp short div_continue
          lzero:
              mov cx,bx
              s_move:
                  pop bx
                  mov ds:[si],bx
                  inc si
                  loop s_move
              pop si
              pop cx
              pop bx
              ret

code ends

end start

不知是哪里错了,请大神看看,得出的图不对,,,

1个回答

hglboke
hglboke   2017.08.31 12:47

图片说明这是楼主我得出的图,不知哪错了。。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
王爽《汇编语言》课程设计1
实验结果 代码如下 assume cs:code data segment db '1975','1976','1977','1978','1979','1980','1981','1982','1983' db '1984','1985','1986','1987','1988','1989','1990','1991','1992' db '1993','199
汇编语言 王爽(第三版)课程设计一
assume cs:codedata 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' dd
王爽 汇编 课程设计1
assume cs:code;年份year segmentdb '1975','1976','1977','1978','1979','1980','1981','1982','1983' db '1984','1985','1986','1987','1988','1989','1990','1991','1992' db '1993','1994','1995'year ends;收入inco
读王爽老师的汇编语言有感
今天不知为何又查了一下王爽老师的《汇编语言》,遥想起当时学习这本书的经历,不得不赞叹与本书对知识组织加工的艺术。 相比之下,我觉得大家应该都有这样的一些经历:拿到一本书,信誓旦旦要把这本书学下来,可惜的是中途不是觉得似懂非懂、大脑混乱,要么就是觉得难度过高、信心受挫、半途而废,亦或是觉得图书枯燥乏味,不知所云。我觉的当然读者要负主要的责任,但编书者要付更不可推卸的责任。所以我总结了一下王爽老师编
《汇编语言(第3版)》王爽 课程设计2
本次课程设计的任务是编写一个可以自行启动的计算机,不需要在现有的操作系统环境中运行的程序。 该程序功能如下: (1 )、列出功能选项,让用户通过键盘进行选择,界面如下: 1)、reset  pc  ;重新启动计算机    2)、start  system ;引导现有的操作系统 3)、clock ;进入时钟程序 4)、set  clock ;设置时间 (2 )、用户输入1后,
《汇编语言(第3版)》王爽 课程设计1
;1、基本思路:把数据分批先放入表中,然后把整张表一起放到屏幕显示 ;2、表为21x35,前三个year,money,people,各占10列,average占5列 ;3、函数dtoc中把十进制的数转化成ascii后,送入一个地址,并以0结尾。 ;主程序中我们再从这个地址读出数据送入table中 ;4、关于money,number,average空白填充可以在读取数据的时候记录字符 ;串的大小,再
王爽《汇编语言》课程设计二续(包含软盘操作)
之前完成了课程设计的第一部分(CMOS的读取与修改等):王爽《汇编语言》课程设计二(只包含CMOS RAM操作不包含软盘操作) 但是由于没有软盘做不了第二部分(脱离操作系统引导程序),今天我们完善一下,将第二部分补上去,首先得解决软盘的问题:关于VMWare虚拟机中软盘问题1、题目描述与分析:开机后,CPU自动进入到FFFF:0单元处执行,此处有一条跳转指令。CPU执行该指令以后,转去BIOS中
王爽《汇编语言》第二版课程设计2,我的答案
阅读下面的材料 : 开机后, CPU 自动进入到 FFF0:0 单元处执行,此处有一条跳转指令。 CPU 执行该指令后,转去执行 BIOS 中的硬件系统检测和初始化程序。 初始化程序将建立 BIOS 所支持的中断向量,即将 BIOS 提供的中断历程的入口地址登记在中断向量表中。 硬件系统检测和初始化完成后,调用 INT 19H 进行操作系统的引导。 如果设为从软盘启动操作系统,则 INT 19H 将主要完成一下工作: ( 1 )控制 0 号软驱,读取软盘 0 道 0 面 1 扇区的内容到 0 : 7C 00 。 ( 2 )将 CS:IP 指向 0 : 7C 00 。 软盘的 0 道 0 面 1 扇区中装有操作系统引导程序。 INT 19H 将其装到 0 : 7C 00 处后,设置 CPU 从 0 : 7C 00 开始执行此处的引导程序,操作系统被激活,控制计算机。 如果在 0 号软驱中没有软盘,或发生软盘 I/O 错误,则 INT 19H 将主要完成以下工作 ; (1) 读取硬盘 C 的 0 道 0 面 1 扇区的内容到 0 : 7C 00 ; (2) 将 CS:IP 指向 0 : 7C 00 。 这次课程设计的任务是编写一个可以自行启动计算机,不需要在现有操作系统环境中运行的程序。 改程序的功能如下: ( 1 )列出功能选项,让用户通过键盘进行选择,界面如下: 1 ) reset pc ; 重新启动计算机 2 ) Start system ; 引导现有的操作系统 3 ) Clock ; 进入时钟程序 4 ) Srt clock ; 设置时间 ( 2 )用户输入“ 1 ”后重新启动计算机。(提示:考虑 FFFF:0 ) ( 3 )用户输入“ 2 ” 后引导现有的操作系统。(提示:考虑硬盘 C 的 0 道 0 面 1 扇区) ( 4 )用户输入“ 3 ”后,执行动态现实当前日期,时间的程序。 现实格式如下:年 / 月 / 日 时:分:秒 进入此项功能后,一直动态现实当前的时间,在屏幕上将出现时间按秒变化的效果。(提示:循环读取 CMOS ) 当按下 F1 键后,改变现实颜色;按下 ESC 键后,返回到主选单。(提示:利用键盘中断) ( 5 )用户输入“ 4 ”后可更改当前的日期,时间,更改后返回到主选单。(提示:输入字符串) 下面给出的几点建议: ( 1 )在 DOS 下编写安装程序,在按转程序中包含任务程序; ( 2 )运行安装程序,将任务程序写到软盘上; ( 3 )若要任务程序可以在开机后自行执行,要将它写到软盘的 0 道 0 面 1 扇区上。如果程序长度大于 512B ,则需要用多个扇区存放,这种情况下,处于软盘 0 道 0 面 1 扇区中的程序就必须负责将其他扇区中的内容读入内存。 这个程序较为复杂,它用到了我们所学到的所有技术,需要进行仔细地分析和耐心地调试。这个程序对于我们的整个学习过程是具有总结性的,希望读者能够尽力完成。
王爽老师版《汇编语言》全部实验报告
这是学完王爽老师的《汇编语言程序设计》后所做的实验报告,花了不少的心血啊!!现在分享给大家,大家可以参考参考,说不定会有不小的帮助哦!!
汇编语言王爽课程设计二
//该代码为安装程序,运行后即将主程序部分复制到软盘a//测试环境为VMWARE 11 + MS-DOS assume cs:code code segment ;------------------------------BEGIN COPY----------------------------------- begin: mov bx,2000h mov es,bx mov b