网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > 课程设计 > 正文

时钟显示程序

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务
时钟显示程序-微型计算机技术1、 实验内容或题目显示系统时间的程序,运行时,在屏幕的右上角将以“时:分:秒”的形式显示本机系统的时间。该程序只能在DOS下运行。报时小闹钟。本程序是一个用汇编编的精致的图形时钟,运行时双击clock图标即可,钟表显示的时间为本机系统的时间。按b键可扩大画面 ;按s键可缩小画面;按c键可改变颜色;按e键可听音乐;按q键退出本程序.
2、实验目的与要求(1)掌握汇编语言源程序的编辑、汇编、连接的方法,DEBUG调试命令及其使用方法(2)熟悉文本编辑程序的使用方法,以建立汇编语言源程序。(3)初步掌握源程序中语法错误的检查方法。(4)熟悉汇编语言的汇编、连接和运行过程。
3、 实验步骤与源程序  ⑴ 实验步骤  一 汇编语言上机过程1.编辑源程序,建立ASM文件在DOS下,我们可以调用任何一种文本编辑软件编辑汇编语言的源程序,现在,我们调用全屏幕编辑程序EDITC>EDIT在磁盘上建立以.asm为后缀的源文件2.用汇编程序(MASM)对源文件汇编产生文件OBJ文件源文件建立之后,要用汇编程序对源文件汇编,汇编产生二进制的目标文件(OBJ文件),操作如下:格式:MASM<文件名>3.用连接程序(LINK)产生执行文件EXE汇编程序生成的二进制的目标文件并不是可以执行的文件,还必须使用连接程序(LINK)把OBJ文件转换为可执行的EXE文件格式:LINK<文件名>
二 调试程序DEBUG的主要命令DEBUG程序是专门为汇编语音设计的一种调试工具1. DEBUG程序的调用在DOS下,键入命令C>DEBUG[驱动器][路径][文件名]在DEBUG程序调入后,出现提示符“-”,此时,可键入所需的DEBUG命令2. 常用DEBUG命令(1) 显示内存单元内容的命令D,格式为-D(2) 修改内存单元内容的命令E,格式为-E(3)检查和修改寄存器内容的命令R,格式为-R(4)运行命令G,格式为-G(5)汇编命令A,格式为-A(6)反汇编命令U,格式-U(7)推出DEBUG命令Q,该命令格式为-Q 上机要求:文件夹masm5子文件aaa已有88.ASM为文件名的源文件,通过调用程序DEBUG的主要命令,熟悉各种命令的用法。      ⑵ 源代码  见附录    4、 测试数据与实验结果(可以抓图粘贴)题目一:显示系统时间的程序图1注:进入DOS,用编辑软件建立的源程序.ASM文件,必须经过汇编才能产生.OBJ文件。 
图2注:以下信息中方括中为该项提示的缺省回答值,冒号后面等待用户输入信息,若不改变缺省值则直接按回车键。汇编后生成SYSTIME.OBJ文件 
图3注:生成的.OBJ文件,其所有目标代码的地址都是浮动的偏移地址,机器不能直接运行。必须用连接程序(LINK.EXE)对其进行连接装配定位,产生.EXE可执行文件,方可运行。 
图4注:经过汇编、连接后生成的.EXE文件,可在DOS系统直接运行,只要键入相应的文件名即可。可在屏幕右上角看到显示的系统文件。216 
 
时钟显示程序-微型计算机技术题目二:报时小闹钟图5注:经过汇编才能产生.OBJ文件最后信息提示: ×× Warning errors  (警告错误) ×× Severe errors  (严重错误)若严重错误总数不为0,则.OBJ文件没有生成,需回到编辑状态下修改源程序直到无错为止。 
图6注:发现错误,进DOS下修改,用edit clock.asm命令图7注:musi文件通过汇编图8注:musi,连接目标程序,程序缺少clock,不可运行 图9注:汇编sound,程序出现问题    5、 结果分析与实验体会本次实验是我们微型计算机的第二次实验。实验内容是汇编语言,时钟显示程序。实验的第一题是在DOS下运行显示系统时间的程序,运行时,在屏幕的右上角将以“时:分:秒”的形式显示本机系统的时间。这个老师已经给了我们源程序,asm文件。首先进入DOS状态,用masm进行汇编,结果没有错误,生成.obj文件。然后用link 命令连接目标程序,可生成 .exe文件。经过汇编、连接后生成的.EXE文件,可在DOS系统直接运行,只要键入相应的文件名即可。右上角出现了系统时间。便完成了实验的第一题。  实验的第二题是报时小闹钟。按照第一题的方法进行汇编,但是程序出现问题,提示在第26,48,411行出现问题,进行修改。后来老师再次发了那个源程序给我们。但是还是有问题,经过讨论和修改,老师说可能使DEBUG的问题,做到这里便可。  本次实验使我们再次接触了汇编程序,对汇编语言有了更深一步地理解。汇编语言是低级机器语言,但在我们的计算机学习过程中是非常重要的。许多课程都与汇编语言相关,可直接看到机器系统的运行。我们需要更加努力的学习汇编语言,将课堂上的理论知识转换成我们的实际上机操作。学习好微型计算机这门课程会在我们整个计算机的本科学习阶段非常的有用。所以我们要花更多的时间和精力学习好这门课程。
 
时钟显示程序-微型计算机技术extrn music:far,gensound:far;******************************************************;* 堆栈段 .286;******************************************************STACK_SEG     SEGMENT   STACK    STACK_BUF DW        120 DUP(?)    TOP       EQU       $-STACK_BUFSTACK_SEG     ENDS;******************************************************;* 数据段 ;******************************************************DATA_SEG      SEGMENT   PARA;------------------------------------------------------; TODO: 数据的定义及存储器的分配ts1           DB        0quitbuf       DB        'welcome you to run this programme.                                       '        quitbuf2      DB        'C: change color;  B:extend the colck;  S:reduce the clock                '   quitbuf3      DB        'press e to sound; Press q to quit !                                      '   sigle         DB        80h                         absx          DW        0  absy          DW        0               sut           DW        0erroybz       DB        0  r0            DW        90x0            DW        320y0            DW        245                                                                                                                                                                         
count0        db    0               count_hour    DB        11              count_minute  DB        11yuanxinx      DW        0yuanxiny      DW        0                                        s             DB        0s2            DB        0              s3            DB        0hour          DW        0hour2         DW        0              minute        DW        0minute2       DW        0              second        DB        0 second2       DB        0                                                       sin_x         DW        0sin_xx        DW        0 x             DW        0y             DW        0x1            DW        0              xminy         DW        0yminx         DW        0              xmax          DW        0  ymax          DW        0   ymin          DW        0xmin          DW        0  sjx_xminy     DW        0sjx_yminx     DW        0              sjx_xmax      DW        0  sjx_ymax      DW        0   sjx_ymin      DW        0sjx_xmin      DW        0     yuanx         DW        0yuany         DW        0                                                                                                                                                                     y1            DW        0x2            DW        0y2            DW        0x3            DW        0y3            DW        0     DIancolor     DB        0                                     color         DB        2color_hour    DB        2color_min     DB        6color_second  DB        9  color4        DB        10color5        DB        11color6        DB        12 backgroundcolor DB      1              page1         DB        0y2y1          DW        0    x2x1          DW        0 sjx_y2y1      DW        0    sjx_x2x1      DW        0                                                                                                                                                ;------------------------------------------------------
DATA_SEG      ENDS;******************************************************;* 代码段 ;******************************************************CODE_SEG      SEGMENT   PARA;------------------------------------------------------MAIN          PROC      FAR              ASSUME    CS:CODE_SEG,DS:DATA_SEG              ASSUME    SS:STACK_SEGSTART:              MOV       AX,STACK_SEG              MOV       SS,AX              MOV       SP,TOP              MOV       AX,DATA_SEG              MOV       DS,AX;------------------------------------------------------; TODO: 从这里开始您的代码;------------------------------------------------------ beg:         MOV       AX,0012h              INT       10h              MOV       DX,0010h              CALL      b1002              LEA       BP,quitbuf              CALL      msg              MOV       DX,010ah              LEA       BP,quitbuf2              CALL      msg              MOV       DX,020ah              LEA       BP,quitbuf3              CALL      msg                           beg2:        CALL      skin              CALL      skin2              CALL      skin3              CALL      CLk              MOV       second,DH              MOV       second2,DH              MOV       count_minute,11              CALL      minute_lin              XOR       DX,DX                            MOV       AX,minute2              MOV       CX,12              DIV       CX              MOV       CX,AX                 ;minurte2/12              POP       AX              ADD       AX,CX              MOV       hour2,AX              MOV       count_hour,11                          CALL      hour_lin                            CALL      CLk              MOV       DL,DH              CALL      bcd2              XOR       AH,AH              MOV       CL,12              DIV       CL              MOV       count_minute,AH            ;second%12初始值              DEC       count_minute                            XOR       DX,DX              MOV       AX,minute2              MOV       CX,12              DIV       CX                        ;minurte2%12              MOV        count_hour,DL              DEC       count_hour              INC       second2kk3:          CLI              CALL      second_lin               STI              JMP       ks                            ks:           MOV       AH,1              INT       16h              JZ        kk3              MOV       AH,8              INT       21h              CMP       AL,'q'              JE        quit              CMP       AL,'b'              JE        CHange_rb              CMP       AL,'s'              JE        CHange_rs              CMP       AL,'c'              JE        CHange_color                            cmp       al,'e'              je        a0              JMP       kk3
CHange_rs:    CMP       r0,190              JA        ks              ADD       r0,5                           JMP       tobeg2           CHange_rb:    CMP       r0,60              JB        ks              SUB       r0,5                            JMP       tobeg2        CHange_color: LEA       SI,color_hour              MOV       CX,6CHange_kk1:   MOV       AL,  [SI]              INC       AL              CMP       AL,15              JC       CHange_color_kk2              MOV       AL,1CHange_color_kk2:                            MOV       [SI],AL              INC       SI              LOOP      CHange_kk1              JMP       tobeg2a0:           call music              call music              call musictobeg2:       CALL      CLear              JMP       beg2              quit:         MOV       AX,4C00H              INT       21H    ;*************************************                                          hour_lin      PROC      NEAR              PUSHa              CMP       count_hour,11              JB        tohour_yl              JMP       hour_lin_nexttohour_yl:    MOV       SIgle,3              JMP       hour_ylhour_lin_next:                 MOV       count_hour,0              MOV       SIgle,5                                       CALL      CLk              MOV       DL,CH              CALL      bcd2              CMP       AL,12              JB        hour_kk1              SUB       AL,12hour_kk1:     MOV       CL,30              MUL       CL              PUSH      AX              XOR       DX,DX              MOV       AX,minute2              MOV       CX,12              DIV       CX              MOV       CX,AX       ;minurte2/12              POP       AX              ADD       AX,CX                            MOV       hour2,AX            ;擦掉                            MOV       Color,0              MOV       AX,hour              MOV       BX,r0              ADD       BX,20              CALL      renovate                    MOV       DX,yuanx              MOV       x3,DX              MOV       DX,yuany              MOV       y3,DX              ADD       AX,270              ADD       BX,400              ;90                            CALL      renovate                              MOV       DX,yuanx         ;擦掉              MOV       x2,DX              MOV       DX,yuany              MOV       y2,DX                              MOV       DX,x0              MOV       x1,DX              MOV       DX,y0   ;擦掉              MOV       y1,DX              CALL      sjx                              ADD       AX,180              CALL      renovate                MOV       DX,yuanx         ;擦掉              MOV       x2,DX              MOV       DX,yuany              MOV       y2,DX                                            SUB       BX,100                  CALL      renovate                              MOV       DX,yuanx              MOV       x3,DX              MOV       DX,yuany              MOV       y3,DX            ;擦掉              CALL      sjx                          MOV       SIgle,4              ;***************************;;  ;重写       hour_yl:      MOV       AL,color_hour                            MOV       color,AL              MOV       AX,hour2              MOV       BX,r0              ADD       BX,70              CALL      renovate                       MOV       DX,yuanx              MOV       x3,DX              MOV       DX,yuany              MOV       y3,DX              ADD       AX,90              ADD       BX,600                ;90                            CALL      renovate                              MOV       DX,yuanx              MOV       x2,DX              MOV       DX,yuany              MOV       y2,DX             ;重写                            ADD       AX,180                             CALL      renovate                              MOV       DX,yuanx              MOV       x1,DX              MOV       DX,yuany              MOV       y1,DX              CALL      sjxx              CALL      sjxy                             ADD       AX,270              SUB       BX,100                CALL      renovate                                MOV       DX,yuanx              MOV       x3,DX                ;重写              MOV       DX,yuany              MOV       y3,DX              CALL      sjx               CALL      sjxx              CALL      sjxy                                                                       MOV       CX,hour2              MOV       hour,CXhour_quit:    POPa              REThour_lin      ENDP                                                                  ;********************************                                              minute_lin    PROC      NEAR              PUSHa              CMP       count_minute,11              JB        tominute_yl        ;仍是原来的一个                 JMP       minute_lin_nexttominute_yl:  MOV       SIgle,0              JMP       minute_ylminute_lin_next:              INC       count_hour              CALL      CLk              MOV       DL,CL              CALL      bcd2            ;bcd->16              MOV       CL,6              MUL       CL              ;al*cl              PUSH      AX              MOV       DL,second2              CALL      bcd2                                           XOR       AH,AH              MOV       CL,12              DIV       CL              MOV       CL,AL       ;second2/12              POP       AX              MOV       CH,0              ADD       AX,CX                            MOV       minute2,AX                                               AAAa1:                                               MOV       SIgle,2                 MOV       Color,0              MOV       AX,minute              MOV       BX,r0              ADD       BX,10              CALL      renovate                            MOV       DX,yuanx              MOV       x3,DX              MOV       DX,yuany              MOV       y3,DX              ADD       AX,268              ADD       BX,800              ;90                            CALL      renovate                              MOV       DX,yuanx              MOV       x2,DX              MOV       DX,yuany              MOV       y2,DX                                                       MOV       DX,x0              MOV       x1,DX              MOV       DX,y0              MOV       y1,DX              CALL      sjx                             ADD       AX,180              CALL      renovate                              MOV       DX,yuanx              MOV       x2,DX              MOV       DX,yuany              MOV       y2,DX                                             ADD       AX,90              SUB       BX,200                  CALL      renovate                              MOV       DX,yuanx              MOV       x3,DX              MOV       DX,yuany              MOV       y3,DX              CALL      sjx               inc count0              cmp count0,5              jnz minute_yl              mov count0,0              call music              call music              call music                          ;**********************************重写                                          minute_yl:    MOV       sigle,1              MOV       AL,color_min              MOV       color,AL              MOV       AX,minute2              MOV       BX,r0              ADD       BX,30              CALL      renovate                            MOV       DX,yuanx              MOV       x3,DX              MOV       DX,yuany              MOV       y3,DX              ADD       AX,90              ADD       BX,900                ;90                            CALL      renovate                              MOV       DX,yuanx              MOV       x2,DX              MOV       DX,yuany              MOV       y2,DX                              ADD       AX,180              CALL      renovate                              MOV       DX,yuanx              MOV       x1,DX              MOV       DX,yuany              MOV       y1,DX              CALL      sjxx              CALL      sjxy                             ADD       AX,270              SUB       BX,200                CALL      renovate                                MOV       DX,yuanx              MOV       x3,DX              MOV       DX,yuany              MOV       y3,DX              CALL      sjxx              CALL      sjxy                                            MOV       CX,minute2              MOV       minute,CX              CALL      hour_lin                      minute_kk1: minute_quit:  POPa              RETminute_lin    ENDP                                                        ;******************in   dh秒数*********************              second_lin    PROC      NEAR              PUSHa              CALL      CLk              CMP       second2,DH              JE        to_second_quit               JMP       second_lin_nextto_second_quit:JMP       second_quitsecond_lin_next:                                                  MOV       SIgle,80h              MOV       second2,DH               MOV       Color,0                        MOV       DL,second             ;erase              CALL      bcd2              MOV       AH,0              MOV       CL,6              MUL       CL              MOV       BX,r0              ADD       BX,10              CALL      renovate                           MOV       DX,yuanx              MOV       x1,DX              MOV       DX,yuany              MOV       y1,DX              ADD       AX,180              ADD       BX,300                            CALL      renovate                              MOV       DX,yuanx              MOV       x2,DX              MOV       DX,yuany              MOV       y2,DX                CALL      linex              CALL      liney            ;重写                           MOV       SIgle,80h              MOV       AL,color_second              MOV       color,AL              MOV       DL,second2              CALL      bcd2              MOV       AH,0              MOV       CL,6              MUL       CL                            MOV       BX,r0              ADD       BX,10              CALL      renovate              MOV       DX,yuanx              MOV       x1,DX              MOV       DX,yuany              MOV       y1,DX                                                     ADD       AX,180              ADD       BX, 300              CALL      renovate                              MOV       DX,yuanx              MOV       x2,DX              MOV       DX,yuany              MOV       y2,DX                CALL      linex              CALL      liney                                              CALL      yuanxin              MOV       DL,second2              MOV       second,DL              CALL      minute_lin              CALL      skin2              MOV       CL,second2              MOV       second,CL                            CMP       count_minute,11              JE        second_kk1              INC       count_minute              JMP       second_quitsecond_kk1:   MOV       count_minute,0                            second_quit:  POPa              RETsecond_lin    ENDP                                                   ;******bxbbx*********in ax度数***bx长度,********* ;OUT x2->ax,y2->dx ;**renovate      PROC      NEAR              PUSHa              ADD       AX,270              PUSH      AX              CALL      SIn              MOV       DX,0              MOV       CX,BX              DIV       CX              CMP       SI,1              JE        hjian              ADD       AX,y0              JMP       renovate_kk1hjian:        MOV       CX,y0              SUB       CX,AX              MOV       AX,CXrenovate_kk1: MOV       yuany,AX              POP       AX                CALL      cos                            MOV       DX,0              MOV       CX,BX              DIV       CX              CMP       SI,1              JE        hjian2              ADD       AX,x0              JMP       renovate_kk2hjian2:        MOV      CX,x0              SUB       CX,AX              MOV       AX,CXrenovate_kk2: MOV       yuanx,AX              POPa                 RETrenovate      ENDP                                              ;**************************              Clk           PROC                                                            MOV       AH,2              INT       1ah              RETCLk           ENDP                                    ;*****************cosx  in ax  out ax ,si符号******************              cos           PROC      NEAR                            ADD       AX,90                   cos_kk1:      CALL      SIn                            RETcos           ENDP                                                                                                                                                                         ;*********Sinx  in ax out ax ,si符号*******************************             SIn           PROC      NEAR           ;out ax
              PUSH      CX              PUSH      DX              PUSH      BXsin360:       CMP       AX,90              JA        dy90sto0_90:      MOV       SI,0              JMP       pp1dy90:         CMP       AX,180              JBE       z91to180              JMP       dy180z91to180:     MOV       CX,180              SUB       CX,AX              MOV       AX,CX              MOV       SI,0              JMP       pp1z181to270:    SUB       AX,180              MOV       SI,1              JMP       pp1z271to360:    CMP       AX,359              JA        zdy359              MOV       CX,360              SUB       CX,AX              MOV       AX,CX              MOV       SI,1              JMP       pp1zdy359:       SUB       AX,360              JMP       SIn360                                                                                dy180:        CMP       AX,270              JBE       z181to270              JMP       z271to360                                          pp1:          MOV       CX,175              XOR       DX,DX              MUL       CX              MOV       sin_x,AX              XOR       DX,DX              MOV       CX,AX              MUL       CX              MOV       CX,10000               DIV       CX              MOV       sin_xx,AX              XOR       DX,DX              MOV       CX,120              DIV       CX              MOV       BX,1677;1667              CALL      SUBab              MOV       CX,sin_xx              XOR       DX,DX              MUL       CX              MOV       CX,10000              DIV       CX               ;xx(xx/120-10000/6)              MOV       CX,10000              MOV       DL,0              CMP       DL,s              JE        jia              SUB       CX,AX              MOV       AX,CX              JMP       kk1jia:          ADD       AX,CXkk1:          MOV       CX,sin_x              XOR       DX,DX              MUL       CX              MOV       CX,10000              DIV       CX              POP       BX              POP       DX              POP       CX              MOV       s,0              RET SIn           ENDP                              ;**************;绝对值在ax中符号在S中ax-bx*****s要定义db*************subab         PROC                                      CMP AX,BX              JAE goab              XOR s,1              XCHG AX,BXgoab:               SUB AX,BX                            RETsubab ENDP                ;***************************linex***y=(y2-y1)*(x-x1)/(x2-x1)+y1;****in (x1,y1),(x2,y2)******************x++                           linex  PROC NEAR              PUSH      x1              PUSH      x2              PUSH      y1              PUSH      y2              pusha               CALL    xymaxmin              MOV AX,y2             MOV BX,y1             CALL subab             MOV  y2y1,AX             MOV AX,x2             MOV BX,x1             CALL subab             MOV  SI,0             CMP  SI,AX             JE   zhixian             JMP  lopxzhixian:     JMP  zhixianxs              lopx:        MOV  x2x1,AX             MOV  AX,xmin             MOV       x,AX                                    line0x:      SUB       AX,xmin             MOV       DX,0               MOV       CX,y2y1                  MUL       CX              MOV       CX,x2x1              DIV       CX              MOV       DX,0              CMP       DL,s                            JE        zhengx              MOV       CX,AX              MOV       AX,xminy              SUB       AX,CX              JMP       kk2xzhengx:        ADD       AX,xminykk2x:         MOV       y,AX               CALL      DIan
               INC       x                             MOV       AX,x               CMP       AX,xmax               JBE       line0x               JMP       quit12                           zhixianxs:    MOV       AX,xmin              MOV       x,AX              MOV       AX,ymin              MOV       y,AXlopxx:        CALL      DIan
              INC       y              MOV       AX,ymax              CMP       AX,y              JAE      lopxx                                                         quit12:      MOV       s,0                           POPa              POP       y2              POP       y1              POP       x2              POP       x1                            RETlinex         ENDP                                ;**************************liney      x=(x2-x1)(y-y1)/(y2-y1)+x1              ;*****************y++                                      sjx  PROC NEAR              PUSH      x1              PUSH      x2              PUSH      y1              PUSH      y2              pusha               CALL      xymaxmin               MOV       AX,y2              MOV       BX,y1              CALL      subab              MOV       y2y1,AX              MOV       SI,0              CMP       SI,AX              JE        to_sjxxsjx_lop1:     MOV       AX,x2              MOV       BX,x1              CALL      subab              MOV       x2x1,AX              MOV       SI,0              CMP       SI,AX              JE        to_sjxy              MOV       DX,0              MOV       AX,y2y1              MOV       CX,x2x1              DIV       CX              CMP       AX,1              JE        to_sjxx              CMP       AX,0              JE        to_sjxx              JMP       to_sjxyto_sjxx:      MOV       s,0              CALL      sjxx                  JMP       sjx_quitto_sjxy:      MOV       s,0              CALL      sjxy    sjx_quit:     POPa              POP       y2              POP       y1              POP       x2              POP       x1                 MOV       s,0                      RETsjx           ENDP             
liney  PROC NEAR              PUSH      x1              PUSH      x2              PUSH      y1              PUSH      y2              pusha               CALL      xymaxmin               MOV       AX,y2              MOV       BX,y1              CALL      subab              MOV       y2y1,AX              MOV       SI,0              CMP       SI,AX              JE        heng              JMP       lop1  heng:         JMP       hengxian                     lop1:         MOV AX,x2              MOV BX,x1              CALL subab              MOV       x2x1,AX              MOV       AX,ymin              MOV       y,AX                                    line0y: SUB   AX,ymin        MOV   DX,0               MOV       CX,x2x1                  MUL       CX              MOV       CX,y2y1              DIV       CX              MOV       DX,0              CMP       DL,s              JE        zhengy              MOV       CX,AX              MOV       AX,yminx              SUB       AX,CX              JMP       kkyzhengy:       ADD       AX,yminx kky:         MOV       x,AX                             CALL      DIan               INC       y                            MOV       AX,y              CMP       AX,ymax              JBE       line0y              JMP       quityhengxian:     MOV       AX,ymin              MOV       y,AX              MOV       AX,xmin              MOV       x,AXlopy:         CALL      DIan              INC       x              MOV       AX,xmax              CMP       AX,x              JAE       lopy                    
 quity:       MOV       s,0                           POPa              POP      y2              POP      y1              POP      x2              POP      x1                            RETliney         ENDP                                                                                     ;***************************linex***y=(y2-y1)*(x-x1)/(x2-x1)+y1;****in (x1,y1),(x2,y2)******************x++                           sjxx  PROC NEAR              pusha               PUSH      x1              PUSH      x2              PUSH      x3              PUSH      y1              PUSH      y2              PUSH      y3                                                        CALL      xymaxmin              MOV       AX,xmin              MOV       sjx_xmin,AX              MOV       AX,ymin              MOV       sjx_ymin,AX              MOV       AX,xmax              MOV       sjx_xmax,AX              MOV       AX,ymax              MOV       sjx_ymax,AX              MOV       AX,xminy              MOV       sjx_xminy,AX                                                       MOV AX,y2             MOV BX,y1             CALL subab             MOV       sjx_y2y1,AX             MOV AX,x2             MOV BX,x1             CALL subab              MOV       DL,s              MOV       s2,DL              MOV       s,0                            MOV       SI,0              CMP       SI,AX              JE        sjx_zhixian              JMP       sjx_lopxsjx_zhixian:                    MOV       x1,AX              MOV       AX,x3              MOV       x2,AX              MOV       AX,y3              MOV       y2,AX                               JMP       sjx_zhixianxs              sjx_lopx:     MOV       sjx_x2x1,AX              MOV       AX,x3              MOV       x2,AX              MOV       AX,y3              MOV       y2,AX                 MOV       AX,sjx_xmin              MOV       x1,AX                                                                   sjx_line0x:   SUB       AX,sjx_xmin              MOV       DX,0                         ;***y=(y2-y1)*(x-x1)/(x2-x1)+y1              MOV       CX,sjx_y2y1                  MUL       CX              MOV       CX,sjx_x2x1              DIV       CX              MOV       DX,0              CMP       DL,s2              JE        sjx_zhengx              MOV       CX,AX              MOV       AX,sjx_xminy              SUB       AX,CX              JMP       sjx_kk2sjx_zhengx:                               ADD       AX,sjx_xminysjx_kk2:                                  MOV       y1,AX               CALL      linex               CALL      liney               INC       x1                             MOV       AX,x1               CMP       AX,sjx_xmax               JBE       sjx_line0x               JMP       sjx_quit12                           sjx_zhixianxs: MOV       AX,sjx_xmin              MOV       x1,AX              MOV       AX,sjx_ymin              MOV       y1,AXsjx_lopxx:                       CALL      linex              CALL      liney              INC       y1              MOV       AX,sjx_ymax              CMP       AX,y1              JAE      sjx_lopxx                                                         sjx_quit12:  MOV       s,0              POP       y3                 POP      y2              POP      y1              POP       x3              POP      x2              POP      x1                                                   POPa              RETsjxx           ENDP                                             ;**************************liney      x=(x2-x1)(y-y1)/(y2-y1)+x1              ;*****************y++                                                    sjxy  PROC NEAR              PUSH      x1              PUSH      x2              PUSH      x3              PUSH      y1              PUSH      y2              PUSH      y3              pusha               CALL      xymaxmin               MOV       AX,xmin              MOV       sjx_xmin,AX              MOV       AX,ymin              MOV       sjx_ymin,AX              MOV       AX,xmax              MOV       sjx_xmax,AX              MOV       AX,ymax              MOV       sjx_ymax,AX                MOV       AX,yminx              MOV       sjx_yminx,AX                                        MOV AX,y2              MOV BX,y1                  CALL subab              MOV       sjx_y2y1,AX              MOV       SI,0              CMP       SI,AX              JE        sjxy_heng              JMP       sjxy_lop1  sjxy_heng:                   MOV       DL,s              MOV       s2,DL              MOV       s,0                               MOV       AX,x3              MOV       x2,AX              MOV       AX,y3              MOV       y2,AX                                             JMP       sjxy_hengxian                     sjxy_lop1:    MOV      AX,x2              MOV      BX,x1            ;x=(x2-x1)(y-y1)/(y2-y1)+x1              CALL     subab              MOV       DL,s              MOV       s2,DL              MOV       s,0              MOV       sjx_x2x1,AX              MOV       AX,x3              MOV       x2,AX              MOV       AX,y3              MOV       y2,AX                                             MOV       AX,sjx_ymin              MOV       y1,AX                  sjxy_line0y:  SUB       AX,sjx_ymin              MOV       DX,0               MOV       CX,sjx_x2x1                  MUL       CX              MOV       CX,sjx_y2y1              DIV       CX              MOV       DX,0              CMP       DL,s2              JE        sjxy_zhengy              MOV       CX,AX              MOV       AX,sjx_yminx              SUB       AX,CX              JMP       sjxy_kky3sjxy_zhengy:                              ADD       AX,sjx_yminxsjxy_kky3:                                  MOV       x1,AX               CALL      linex                            CALL      liney                 INC       y1                             MOV       AX,y1               CMP       AX,sjx_ymax               JBE       sjxy_line0y               JMP       sjxy_quitysjxy_hengxian:     MOV       AX,sjx_ymin              MOV       y1,AX              MOV       AX,sjx_xmin              MOV       x1,AXsjxy_lopy:    CALL      liney              CALL      linex              INC       x1              MOV       AX,sjx_xmax              CMP       AX,x1              JAE       sjxy_lopy                    
sjxy_quity:  MOV       s,0                           POPa              POP       y3              POP      y2              POP      y1              POP       x3              POP      x2              POP      x1                            RETsjxy          ENDP                ;             xymaxmin      PROC      NEAR              PUSHa              PUSH      x1              PUSH      x2              PUSH      y1              PUSH      y2                                          MOV       AX,x1              CMP       AX,x2              JAE       x1dyx2              MOV       xmin,AX    ;x1              CLear         PROC              MOV       DX,0410h              CALL      b1002              MOV       CX,6000              MOV       BH,PAGE1              MOV       AL,' '              MOV       AH,0ah              INT       10h              RETCLear         ENDP                                     
 ;      12根******************************             skin2         PROC              PUSHa              MOV       AL,color6              MOV       color,AL                            MOV       CX,12              MOV       AX,0skin2_kk1:    PUSH      CX                                   PUSH      AX              MOV       BX,r0              MOV       CX,y0              MOV       DX,x0                            CALL      enovate              MOV       AX,x              MOV       x1,AX              MOV       AX,y              MOV       y1,AX              POP       AX              PUSH      AX                            MOV       BX,r0              ADD       BX,10              MOV       CX,y0              MOV       DX,x0
              CALL      enovate              MOV       AX,x              MOV       x2,AX              MOV       AX,y              MOV       y2,AX              CALL      linex              CALL      liney              POP       AX              ADD       AX,30                            POP       CX              LOOP      skin2_kk1              MOV       CX,4              MOV       AX,0skin2_kk2:    PUSH      CX                                   PUSH      AX              MOV       BX,r0              MOV       CX,y0              MOV       DX,x0                            CALL      enovate              MOV       AX,x              MOV       x1,AX              MOV       AX,y              MOV       y1,AX              POP       AX              PUSH      AX                            MOV       BX,r0              ADD       BX,20              MOV       CX,y0              MOV       DX,x0
              CALL      enovate              MOV       AX,x              MOV       x2,AX              MOV       AX,y              MOV       y2,AX              CALL      linex              CALL      liney              POP       AX              ADD       AX,90                                          POP       CX              LOOP      skin2_kk2                                                  POPa              RETskin2         ENDP     ;60根**********************************88                            skin3         PROC              PUSHa              MOV       AL,color5              MOV       color,AL              MOV       CX,60              MOV       AX,0skin2_kk3:    PUSH      CX                                   PUSH      AX              MOV       BX,r0              MOV       CX,y0              MOV       DX,x0                            CALL      enovate              MOV       AX,x              MOV       x1,AX              MOV       AX,y              MOV       y1,AX              POP       AX              PUSH      AX                            MOV       BX,r0              ADD       BX,3              MOV       CX,y0              MOV       DX,x0
              CALL      enovate              MOV       AX,x              MOV       x2,AX              MOV       AX,y              MOV       y2,AX              CALL      linex              CALL      liney              POP       AX              ADD       AX,6                                          POP       CX              LOOP      skin2_kk3              POPa              RETskin3         ENDP                       ;数字加圆**************************************88                            skin          PROC      NEAR              MOV       AL,color4              MOV       color,AL              MOV       BX,r0              CALL      yuan              MOV       BX,r0                            MOV       DH,7              MOV       DL,39              CALL      b1002              MOV       DL,'1'              MOV       AH,2              INT       21h              MOV       DH,7              MOV       DL,40              CALL      b1002              MOV       DL,'2'              MOV       AH,2              INT       21h                                           MOV       DH,8              MOV       DL,47              CALL      b1002              MOV       DL,'1'              MOV       AH,2              INT       21h                              MOV       DH,11              MOV       DL,53              CALL      b1002              MOV       DL,'2'              MOV       AH,2              INT       21h                 MOV       DH,19              MOV       DL,53              CALL      b1002              MOV       DL,'4'              MOV       AH,2              INT       21h
              MOV       DH,22              MOV       DL,47              CALL      b1002              MOV       DL,'5'              MOV       AH,2              INT       21h
              MOV       DH,22              MOV       DL,32              CALL      b1002              MOV       DL,'7'              MOV       AH,2              INT       21h               MOV       DH,19              MOV       DL,26              CALL      b1002              MOV       DL,'8'              MOV       AH,2              INT       21h                MOV       DH,11              MOV       DL,25              CALL      b1002              MOV       DL,'1'              MOV       AH,2              INT       21h              MOV       DH,11              MOV       DL,26              CALL      b1002              MOV       DL,'0'              MOV       AH,2              INT       21h
              MOV       DH,8              MOV       DL,30              CALL      b1002              MOV       DL,'1'              MOV       AH,2              INT       21h               MOV       DH,8              MOV       DL,31              CALL      b1002              MOV       DL,'1'              MOV       AH,2              INT       21h                      MOV       DH,15              MOV       DL,55              CALL      b1002              MOV       DL,'3'              MOV       AH,2              INT       21h                       MOV       DH,23              MOV       DL,40              CALL      b1002              MOV       DL,'6'              MOV       AH,2              INT       21h              MOV       DH,15              MOV       DL,24              CALL      b1002              MOV       DL,'9'              MOV       AH,2              INT       21h              RET                            skin          ENDP              msg           PROC      NEAR        ;in bp为输出字符串地址              PUSH      ES              PUSH      DS              POP       ES              MOV       CX,40h              MOV       AL,0              MOV       BX,2              MOV       AH,13h              INT       10h              POP       ES              RETmsg           ENDP
;*****************in dl  out albcd2          PROC      NEAR                                          MOV       AH,0              MOV       AL,DL              SHR       AL,4              AND       AL,0fh              MOV       CL,10              MUL       CL              MOV       CL,AL              MOV       AL,DL              AND       AL,0fh              ADD       AL,CL;;;;;      bcd转16进制              RETbcd2          ENDP                                                                                                                        ;r0=bx    圆心cx 行 dx列********************               yuan          PROC              PUSHa              MOV       CX,360              MOV       AX,0yuan_kk1:     PUSH      CX                 PUSH      AX              MOV       CX,y0              MOV       DX,x0              CALL      enovate              CALL      dian              POP       AX              ADD       AX,1              POP       CX              LOOP      yuan_kk1                                       POPa              RETyuan          ENDP                                                       ;*****************in ax度数    bx=半径r长度,cx 列 dx行  圆心 out  x,y************enovate       PROC      NEAR              PUSHa              PUSH      DX              PUSH      AX              PUSH      CX              CALL      SInlwfree.cn              ADD       AX,CX              JMP       enovate_kk1ian:          SUB       CX,AX              MOV       AX,CXenovate_kk1:  MOV       y,AX              POP       AX                                          CALL      cos              MOV       DX,0              MOV       CX,BX              DIV       CX              POP       DX              CMP       SI,1              JE        ian2              ADD       AX,DX              JMP       enovate_kk2ian2:         MOV       CX,DX              SUB       CX,AX              MOV       AX,CXenovate_kk2:  MOV       x,AX                                                 POPa              RETenovate     ENDP                                                                                                                                             MAIN          ENDP                 ;------------------------------------------------------CODE_SEG      ENDS;******************************************************              END       START    ;程序结束
 
时钟显示程序-微型计算机技术
                           报时小闹钟    本程序是一个用汇编编的精致的图形时钟,运行时双击clock图标即可,钟表显示的时间为本机系统的时间。  按b键可扩大画面 ;按s键可缩小画面;按c键可改变颜色;按e键可听音乐;按q键退出本程序.  PUBLIC  GENSOUNDCODE    SEGMENT PARA 'CODE'           ASSUME CS: CODEGENSOUND   PROC  FAR           PUSH  AX           PUSH  BX           PUSH  CX           PUSH  DX           PUSH  DI           MOV   AL, 0B6H           OUT   43H, AL           MOV   DX, 12Hlwfree.cn           IN    AL, 61H           OR    AL,  3           OUT   61H,  ALWAIT1:     MOV   CX, 8FF0HDELAY:     LOOP  DELAY           DEC   BX           JNZ   WAIT1           MOV   AL, AH           OUT   61H, AL           POP   DI           POP   DX           POP   CX           POP   BX           POP   AX           RETGENSOUND   ENDPCODE       ENDS           END            EXTRN GENSOUND:FARPUBLIC   MUSICSTACK    SEGMENT PARA STACK 'STACK'         DB 64 DUP ('STACK')STACK    ENDSDATA     SEGMENT PARA 'DATA'MUS_FREQ DW  330, 294, 262, 294, 3 DUP (330)         DW  3 DUP (294), 330,392,392         DW  330, 294, 262, 294, 4 DUP (330)         DW  293, 294, 330, 294, 262,-1MUS_TIME DW  6 DUP (25*8), 50*8         DW  2 DUP (25*8, 25*8, 50*8)         DW  12 DUP (25*8), 100*8DATA     ENDSCODE     SEGMENT PARA 'CODE'         ASSUME CS: CODE, SS: STACK         ASSUME DS: DATAMUSIC    PROC  FAR         PUSH  DS         PUSH  DX         PUSH  CX         PUSH  BX         PUSH  AX         MOV   AX, DATA         MOV   DS, AX         LEA   SI, MUS_FREQ         LEA   BP, DS: MUS_TIMEFREQ:    MOV   DI, [SI]         CMP   DI, -1         JE    END_MUS         MOV   BX, DS: [BP]         CALL  GENSOUND         ADD   SI, 2         ADD   BP, 2         JMP   FREQEND_MUS:         POP AX         POP BX         POP CX         POP DX         POP DS         RETMUSIC    ENDPCODE     ENDS         END
 
时钟显示程序-微型计算机技术cursor  equ     45Hattrib  equ     2fhcode    segment        assume cs:code,ds:codestart:          jmp     gooldcur  dw      ?OLD1C   DW      2 DUP(?)NEWINT1C:        PUSHF        CALL DWORD PTR CS:OLD1C                push    ax        PUSH    BX        PUSH    CX        PUSH    DX                             XOR     BH,BH        MOV     AH,3        INT     10H                                      MOV     CS:OLDCUR,DX        MOV     AH,2        xor     bh,bh        MOV     DX,CURSOR        INT     10H        MOV     AH,2        INT     1AH                     PUSH    DX                      PUSH    CX        POP     BX        PUSH    BX        CALL    SHOWBYTE        CALL    SHOWCOLON        POP     BX        XCHG    BH,BL        CALL    SHOWBYTE        CALL    SHOWCOLON        POP     BX        CALL    SHOWBYTE        MOV     DX,CS:OLDCUR        MOV     AH,2        XOR     BH,BH        INT     10H        POP     DX        POP     CX        POP     BX        POP     AX        IRETSHOWBYTE PROC NEAR        PUSH    BX        MOV     CL,4        MOV     AL,BH        SHR     AL,CL        ADD     AL,30H        CALL    SHOW        CALL    CURMOVE        POP     BX        MOV     AL,BH        AND     AL,0FH        ADD     AL,30H        CALL    SHOW        CALL    CURMOVE        RETSHOWBYTE ENDP
SHOWCOLON PROC NEAR        MOV     AL,':'        CALL    SHOW        CALL    CURMOVE        RETSHOWCOLON ENDP
CURMOVE PROC NEAR        PUSH    AX        PUSH    BX        PUSH    CX        PUSH    DX        MOV     AH,3        MOV     BH,0        INT     10H        INC     DL        MOV     AH,2        INT     10H        POP     DX        POP     CX        POP     BX        POP     AX        RETCURMOVE ENDP这是一个显示系统时间的程序,运行时,在屏幕的右上角将以“时:分:秒”的形式显示本机系统的时间。该程序只能在DOS下运行。
SHOW    PROC NEAR        PUSH    AX        PUSH    BX        PUSH    CX        MOV     AH,09H        MOV     BX,attrib        MOV     CX,1        INT     10H        POP     CX        POP     BX        POP     AX        RETSHOW    ENDP
GO:        PUSH    CS        POP     DS        MOV     AX,351CH           INT     21H        MOV     OLD1C,BX        MOV     BX,ES        MOV     OLD1C+2,BX        MOV     DX,OFFSET NEWINT1C        MOV     AX,251CH        INT     21H        MOV     DX,OFFSET GO        SUB     DX,OFFSET START        MOV     CL,4        SHR     DX,CL        ADD     DX,11H        MOV     AX,3100H        INT     21HCODE ENDS        END START
 
时钟显示程序-微型计算机技术汇编语言实践操作指导汇编语言源程序的编辑、汇编、连接的方法,DEBUG调试命令及其使用方法 一、编辑源程序 汇编语言源程序:用汇编语句编写的解决应用问题的程序。汇编程序:将汇编语言源程序翻译成机器语言程序的系统。汇编:将汇编语言程序翻译成机器语言程序的过程。在编辑汇编语言源程序时,对计算机硬件工作环境无特殊要求,对软件工作环境要求也很简单,只需用建立ASCII码文本文件的软件即可。(1)编辑软件全屏编辑软件:EDIT.COM、WINDOWS 记事本等当输入、建立和修改源程序时,可任选一种编辑软件,不要用格式控制符,要求编辑完成的文件扩展名一定是.ASM。(2)汇编程序有汇编ASM.EXE、宏汇编MASM.EXE及TASM等,一般使用宏汇编MASM.EXE,因它比ASM.EXE功能强。TASM适用于8086/8088~Pentium系列指令系统所编写的汇编语言程序,是比较先进的汇编工具。(3)连接程序用连接程序LINK.EXE或TLINK.EXE,将MASM.EXE产生的机器代码程序(.OBJ)文件连接成可执行程序.EXE,TLINK比LINK更先进。(4)辅助工具程序(.EXE)进行汇编语言程序调试和文件格式转换的程序有: DEBUG.COM  动态调试程序 EXE2BIN.EXE 文件格式转换程序 CREF.EXE 交叉引用程序编辑、汇编、连接、调试过程如图1.1所示。                二、 汇编源程序 用编辑软件建立的源程序.ASM文件,必须经过汇编才能产生.OBJ文件。为此,需键入: C:>MASM <源文件名>    或 C:>MASM按前一种格式键入,屏幕上显示:      Microsoft(R) Macro assemble Version 5.00      Copyright(C) Microsoft Corp 1981-1985,1987 ALL rights reserved      OBJ filename[.obj]:      Source listing[nul.lst]:      Cross-reference[nul.crf]:以上信息中方括中为该项提示的缺省回答值,冒号后面等待用户输入信息,若不改变缺省值则直接按回车键。汇编后生成以下几个文件:(1).OBJ文件.OBJ文件是必须生成的一个目标代码文件,当源程序中无语法错误时,则在当前工作盘上自动存入一个.OBJ文件,供下一步连接用。若源程序有语法错误时,会出现错误信息提示:   源程序文件行 错误信息代码 错误说明信息最后信息提示: ×× Warning errors  (警告错误) ×× Severe errors  (严重错误)若严重错误总数不为0,则.OBJ文件没有生成,需回到编辑状态下修改源程序直到无错为止。(2).LST文件(列表文件).LST文件对调试程序有帮助,它是将源程序中各语句及其对应的目标代码和符号表以清单方式列出,如果需要,在屏幕显示的第二个提问的冒号后输入文件名即可,如果不需要,直接按回车键。(3).CRF文件(交叉引用文件)交叉引用.CRF文件给出了源程序中定义的符号引用情况,按字母顺序排列。.CRF文件不可显示,须用CREF.EXE系统程序将.CRF文件转换成为.REF文件后方可显示输出。若按后一种格式输入,系统会依次出现四个提示信息,比第一种格式多了一项源程序文件名的输入。应答方式与第一种格式相同。三、 连接目标程序 汇编后生成的.OBJ文件,其所有目标代码的地址都是浮动的偏移地址,机器不能直接运行。必须用连接程序(LINK.EXE)对其进行连接装配定位,产生.EXE可执行文件,方可运行。在系统提示符下键入:LINK <源程序文件名> 或 LINK屏幕上出现以下提示信息:       Microsoft(R) Macro assemble Version 5.00       Copyright(C) Microsoft Corp 1981-1985,1987 ALL rights reserved       Run file [.EXE]:       List File [nul.map]:       Libraries [.lib]:连接后,可生成两种文件:.EXE和.MAP(1).EXE文件(可执行文件)若采用方括号中的默认值,直接按回车键,否则需重新输入一文件名。若连接过程中无错误,则自动在当前工作盘生成.EXE文件。若有错误,则会给出错误信息提示,这时必须重新修改源程序,再汇编、连接。(2).MAP(连接映像文件)(3).LIB库文件连接程序询问是否使用某种库文件,不需使用库文件直接按回车键。(4)若要连接多个模块目标程序,可用“+”把它们连接起来。    如:LINK files1+files2+files3若直接键入:LINK会依次出现四个提示信息,应答方式应与LINK<源程序文件>相同,仅增加了一项输出,询问被连接的目标文件名字:Object Modeules[.OBJ]:格式:LINK ;多了一个分号,表示结束后续询问。四、 运行程序 经过汇编、连接后生成的.EXE文件,可在DOS系统直接运行,只要键入相应的文件名即可。如:C:\MASM><文件名>DOS的COMMAND.COM模块将该程序装配到内存,并设置和分配启动地址。也可在DEBUG调试程序下运行。如何用DEBUG程序来运行和调试程序将在DEBUG调试程序中详细讨论。五、 DEBUG调试程序 DEBUG.EXE程序是专门为分析、研制和开发汇编语言程序而设计的一种调试工具,具有跟踪程序执行、观察中间运行结果、显示和修改寄存器或存储单元内容等多种功能。它能使程序设计人员或用户触及到机器内部,因此可以说它是80X86CPU的心灵窗口,也是我们学习汇编语言必须掌握的调试工具。    1)DEBUG程序使用在DOS提示符下键入命令:    C>DEBUG [盘符:][路径][文件名.EXE][参数1][参数2]   这时屏幕上出现DEBUG的提示符“-”,表示系统在DEBUG管理之下,此时可以用DEBUG进行程序调试。若所有选项省略,仅把DEBUG装入内存,可对当前内存中的内容进行调试,或者再用N和L命令,从指定盘上装入要调试的程序;若命令行中有文件名,则DOS把DEBUG程序调入内存后,再由DEBUG将指定的文件名装入内存。2)DEBUG的常用命令(1)汇编命令 A格式:A[起始地址]功能:将输入源程序的指令汇编成目标代码并从指定地址单元开始存放。若缺省起始地址,则从当前CS:100地址开始存放。A命令按行汇编,主要是用于小段程序的汇编或对目标程序的修改。   (2)反汇编命令 U   格式1:U[起始地址]   格式2:U[起始地址][结束地址|字节数]   功能:格式1从指定起始地址处开始将32个字节的目标代码转换成汇编指令形式,缺省起始地址,则从当前地址CS:IP开始。   格式2将指定范围的内存单元中的目标代码转换成汇编指令。(3)显示、修改寄存器命令 R格式:R[寄存器名]功能:若给出寄存器名,则显示该寄存器的内容并可进行修改。缺省寄存器名,则按以下格式显示所有寄存器的内容及当前值(不能修改)。   AX=0000  BX=0004  CX=0020  DX=0000  SP=0080  BP=0000  SI=0000   DI=0000   DS=3000  ES=23A0  CS=138E  IP=0000   NV UP DI PL NZ NA PO NC   138E:0000 MOV AX,1234    -R AX      ;输入命令    AX 0014      ;显示AX的内容    :       ;供修改,不修改按回车。
   若对标志寄存器进行修改,输入:-RF    屏幕显示如下信息,分别表示OF、DF、IF、SF、ZF、AF、PF、CF的状态。
 
时钟显示程序-微型计算机技术NV UP DI PL NZ NA PO NC不修改按回车键。要修改需个别输入一个或多个此标志的相反值,再按回车键。R命令只能显示、修改16位寄存器。(4)显示存储单元命令 D格式1:D[起始地址]    格式2:D[起始地址][结束地址|字节数]    功能:格式1从起始地址开始按十六进制显示80H个单元的内容,每行16个单元,共8行,每行右边显示16个单元的ASCII码,不可显示的ASCII码则显示“•”。格式2显示指定范围内存储单元的内容,其他显示方式与格式1一样。如果缺省起始地址或地址范围,则从当前的地址开始按格式1显示。例如: -D 200  ;表示从DS:0200H开始显示128个单元内容 -D 100 120 ;表示显示DS:0100-DS:0120单元的内容    说明:在DEBUG中,地址表示方式有如下形式:    段寄存器名:相对地址,如:DS:100段基值:偏移地址(相对地址),如:23A0:1500(5)修改存储单元命令 E格式1:E[起始地址] [内容表]    格式2:E[地址]    功能:格式1按内容表的内容修改从起始地址开始的多个存储单元内容,即用内容表指定的内容来代替存储单元当前内容。   例如:—E   DS:0100  'VAR'  12  34   表示从DS:0100 为起始单元的连续五个字节单元内容依次被修改为   'V'、'A'、'R'、12H、34H。格式2是逐个修改指定地址单元的当前内容。   如:—E DS:0010       156F:0010 41.5F其中156F:0010单元原来的值是41H,5FH为输入的修改值。若只修改一个单元的内容,这时按回车键即可;若还想继续修改下一个单元内容,此时应按空格键,就显示下一个单元的内容,需修改就键入新的内容,不修改再按空格跳过,如此重复直到修改完毕,按回车键返回DEBUG“-”提示符。如果在修改过程中,将空格键换成按“-”键,则表示可以修改前一个单元的内容。(6)运行命令 G格式:G[=起始地址][第一断点地址[第二断点地址……]]功能:CPU从指定起始地址开始执行,依次在第一、第二等断点处中断。若缺省起始地址,则从当前CS:IP指示地址开始执行一条指令。最多可设置10个断点。(7)跟踪命令 T格式:T[起始地址][正整数]功能:从指定地址开始执行‘正整数’条指令,若缺省‘正整数’,表示执行一条指令,若两项都缺省,表示从当前CS:IP指示地址开始执行一条指令。(8)指定文件命令 N    格式:N<文件名或扩展名>功能:指定即将调入内存或从内存写入磁盘的文件名。该命令应该用在L命令和W命令之前。(9)装入命令 L    格式1:L[起始地址][盘符号][扇区号][扇区数]    格式2:L[起始地址]    功能:格式1根据盘符号,将指定扇区的内容装入到指定起始地址的存储区中。格式2将N命令指出的文件装入到指定起始地址的存储区中,若省略起始地址,则装入到CS:100处或按原来文件定位约定装入到相应位置。(10)写磁盘命令 W格式1:W<起始地址>[驱动器号]<起始扇区><扇区数>格式2:W[起始地址]    功能:格式1把指定地址开始的内容数据写到磁盘上指定的扇区中。格式2将起始地址的BX×10000H+CX个字节内容存放到由N命令指定的文件中。在格式2的W命令之前,除用N命令指定存盘的文件名外,还必须将要写的字节数用R命令送入BX和CX中。(11)退出命令 Q    格式:Q    功能:退出DEBUG,返回到操作系统。以上介绍的是DEBUG常用命令,其他命令请参考有关书籍。 内容及步骤:DEBUG 命令使用:1、打 DEBUG 进入 DEBUG 控制,显示提示苻 '_ '。2、用命令 F100 10F 'A' 将'A'的ASCII码填入内存。3、用命令 D100 10F 观察内存中的16进制码及屏幕右边的ASCII字符。4、用命令 F110 11F 41 重复上二项实验,观察结果并比较。5、用命令 E100 30 31 32 …… 3F将30H-3FH写入地址为100开始的内存单元中,再用D命令观察结果,看键入的16进制数是什么字符的ASCII码?6、用R 命令检查各寄存器内容,特别注意AX,BX,CX,DX,IP及标志位中ZF,CF和AF的内容。8、用R命令将AX,BX内容改写为1050H及23A8H。8088常用指令练习1、传送指令1)用A命令在内存100H处键入下列内容:MOV AX,1234MOV BX,5678XCHG AX,BXMOV AH,35MOV AL,48MOV DX,75ABXCHG AX,DX2)用U命令检查键入的程序并记录,特别注意左边的机器码。3)用T命令逐条运行这些指令,每运行一行检查并记录有关寄存器及IP的变化情况。并注意标志位有无变化。2、加减法指令:1)用A命令在内存100H处键入下列内容:MOV AH,34MOV AL,22ADD AL,AHSUB AL,78MOV CX,1284MOV DX,5678ADD CX,DXSUB CX,AXSUB CX,CX2)用U命令检查键入的程序及对应的机器码。3)用T命令逐条运行这些指令,检查并记录有关寄存器及ZF情况。思考:这次运行还是打入T,行不行?怎么办?用R命令检查一下IP的内容。注意T命令与IP的关系。3、带进位加减法:1)用A命令在内存200H处键入下列内容,并用U命令检查:MOV AH,12MOV AL,84MOV CH,56MOV CL,78ADD AL,CLADC AH,CHMOV DH,A7MOV DL,58SUB DL,7FSBB DH,342)用T命令逐条运行这些指令,检查并记录有寄存器及CF内容。3)上面这段程序若改用16位操作指令达到同样结果,怎么改?试修改并运 行之。4、BCD码加减法1)内容:MOV AL,58ADD AL,25DAA2)要求:用A 命令键入,U命令检查,T命令逐条运行并记录有关寄存器及AF内容。附:DEBUG 使用:1、打 DEBUG 进入 DEBUG,显示提示苻 '_ '。2、退出DEBUG命令:Q3、显示内存命令:D 起始地址 结束地址4、修改内存命令:E 起始地址,连续修改打空格键。打回车键退出E命令。5、检查寄存器命令:R标志位显示 1 0CF CY NCZF ZR NZSF NG PLAF AC NAOF OV NVPF PE PODF DN UPIF EI DI6、修改寄存器命令:R 寄存器名7、小汇编命令:A 起始地址,不输入指令打回车键退出A命令。8、反汇编命令:U 起始地址 结束地址9、文件命名命令:N 盘号:文件名10、读文件命令:L 内存地址11、写文件命令:W 内存地址10、读扇区命令:L 内存地址 盘号(0--A:,1--B:) 扇区号 扇区数11、写扇区命令:W 内存地址 盘号 扇区号 扇区数12、运行命令:G=起始地址 结束(断点)地址13、单步命令:T=起始地址 运行指令数,进入子程序内部。14、单步命令:P=起始地址 运行指令数,不进入子程序内部。15、内存搬家命令:M 起始地址 结束地址 目的地址
  • 上一篇资讯: Win32.DNSChanger病毒清除
  • 下一篇资讯: 屏幕显示程序
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师