西电计组II 实验1

news2025/7/19 21:01:02

西电计组II 实验1

文章目录

  • 西电计组II 实验1
    • 8086汇编 IO操作
      • 环境搭建
      • 8086汇编 helloworld
        • assume
        • segment
        • db
      • 编译链接
        • lst
        • map
        • obj
        • exe
        • sym
        • dob
      • int 21H 软件中断
      • 程序设计
        • 要求
        • 全局变量
        • 函数设计
          • putchar
          • getchar
          • print
          • newline
          • input
          • memset
          • exit
          • hex
          • binary
          • circle
        • 程序入口
      • 完整代码

8086汇编 IO操作

环境搭建

win32平台上仍然保留了MS-DOS的解释器,可以模拟16位环境(NTVDM.EXE),但是win64就白搭了

机房里的电脑是win7 32位操作系统,可以在cmd终端上直接运行ms-dos应用程序

但是我自己的win11 64位,尝试终端运行ms-dos程序会报告不兼容.

但是在win64上也有方法,要么是用星研电子IDE(实际上使用的是TASM编译器+dosbox模拟16位dos环境)

要么是建立一个虚拟硬盘,在其前512字节的主引导扇区中写入编译好的机器码,然后用bochs或者vmware等虚拟机软件运行

…方法有的是…

在我的电脑上,采用vscode编写汇编代码+星研IDE编译链接运行

8086汇编 helloworld

要了解8086汇编语言的基本结构,最快的办法是学习如何打印helloworld

assume cs:code,ds:data,ss:mystack
data segment
	buffer db 'Hello World!',10,13,'$'
data ends 
mystack segment stack
	db 32 dup(?)
mystack ends
 
code segment
start:
	mov ax,data
	mov ds,ax
	lea dx,buffer
	mov ah,9
	int 21h
 
	mov ah,4ch
	int 21h
code ends
end start

在星研IDE中编译连接运行会在屏幕打印helloworld

下面逐条语句分析程序作用

assume

assume cs:code,ds:data,ss:mystack

assume是tasm的伪指令,不会产生任何机器码,其作用是,将段寄存器和我们定义的段关联,以后在ds段中寻址的时候,就是在data中寻址

这既是给程序员看的,也是给tasm编译器看的,但不是给机器看的

即使在这里将ds和data段关联,我们在代码段的一开始还是要lea ax,data然后mov ds,ax,这样设置代码段的指向.只有这样才会生成相关机器代码,机器才会知道ds段在哪

给tasm编译器看,也就是说当使用mov [di],ax这种没有显示指明内存地址的段寄存器时,tasm知道我们实际上在使用data段作为ds段寄存器,然后ds:[di]这样寻址

segment

定义段

tasm要求一个程序必须要有代码段,数据段,堆栈段,即使用不到,不写,会给警告,不给通过编译

定义一个段的写法:

data segment
	...
data ends 

mystack segment stack;这里后面的stack是段属性,stack显示指出是一个堆栈段
	...
mystack ends

db

定义数据,这个数据是会出现在程序中的,要和"常数"区别

类比c语言,db定义的是变量,"常数"是宏

buffer db 'Hello World!',10,13,'$'

标号 db 数据1,数据2,…

其中db是定义字节的意思,意味着后面的数据1,数据2等都视为字节

如果是dw则后面的操作数视为字

编译链接

只需要在星研IDE中傻瓜一样点一下编译链接即可,同目录下加上asm共有7个同名文件

PS C:\Users\Administrator\Desktop\helloworld> ls | findstr "hw"
-a---          2022/11/19     0:01            292 hw.asm
-a---          2022/11/19     0:01             68 hw.dob
-a---          2022/11/19     0:01           1221 hw.exe
-a---          2022/11/19     0:01           1418 hw.lst
-a---          2022/11/19     0:01            383 hw.map
-a---          2022/11/19     0:01            414 hw.obj
-a---          2022/11/19     0:01            222 hw.sym

其中asm自然是源文件

lst

lst也是写给程序员看的,列表列明的程序内容

包括行号,带机器码,带汇编指令

符号表,段信息

Turbo Assembler	 Version 4.1	    11/19/22 00:01:35	    Page 1
hw.asm



      1
      2				     assume cs:code,ds:data,ss:mystack
      3
      4	0000			     data segment
      5	0000  48 65 6C 6C 6F 20	57+	     buffer db 'Hello World!',10,13,'$'
      6	      6F 72 6C 64 21 0A	0D+
      7	      24
      8	000F			     data ends
      9	0000			     mystack segment stack
     10	0000  20*(??)			     db	32 dup(?)
     11	0020			     mystack ends
     12
     13	0000			     code segment
     14	0000			     start:
     15	0000  B8 0000s			     mov ax,data
     16	0003  8E D8			     mov ds,ax
     17	0005  BA 0000r			     lea dx,buffer
     18	0008  B4 09			     mov ah,9
     19	000A  CD 21			     int 21h
     20
     21	000C  B4 4C			     mov ah,4ch
     22	000E  CD 21			     int 21h
     23	0010			     code ends
     24				     end start
Turbo Assembler	 Version 4.1	    11/19/22 00:01:35	    Page 2
Symbol Table




Symbol Name			  Type	 Value

??DATE				  Text	 "11/19/22"
??FILENAME			  Text	 "hw	  "
??TIME				  Text	 "00:01:35"
??VERSION			  Number 040A
@CPU				  Text	 0101H
@CURSEG				  Text	 CODE
@FILENAME			  Text	 HW
@WORDSIZE			  Text	 2
BUFFER				  Byte	 DATA:0000
START				  Near	 CODE:0000

Groups & Segments		  Bit Size Align  Combine Class

CODE				  16  0010 Para	  none
DATA				  16  000F Para	  none
MYSTACK				  16  0020 Para	  Stack

map

map文件也是给人看的,包括段的映射信息,段在源文件中的行号,程序入口点的位置

 Start  Stop   Length Name               Class

 00000H 0000EH 0000FH DATA               
 00010H 0002FH 00020H MYSTACK            
 00030H 0003FH 00010H CODE               

Line numbers for hw.obj(HW.ASM) segment CODE

    13 0003:0000    14 0003:0003    15 0003:0005    16 0003:0008
    17 0003:000A    19 0003:000C    20 0003:000E
Program entry point at 0003:0000


obj

coff可重定位目标模块

早期操作系统的目标模块,如今windows上仍在使用obj作为目标模块,但是结构已经发生了变化

编译生成的产物,和其他模块一起链接生成exe

exe

coff可执行目标模块,如今windows上仍在使用exe作为可执行程序,但是结构已经发生了变化

链接的产物,可以在16位环境下直接执行

用010editor等二进制编辑器可以观察其结构

image-20221119004723312

开头就是MZ魔数

sym

推测是符号表文件

image-20221119004836011

dob

可能是dump object的缩写

整个程序翻译成的机器码,包括数据段,代码段,堆栈段

image-20221119005524411

int 21H 软件中断

int 21h是dos系统提供的基本的io操作

调用约定是AH中存放入口参数,如果有其他参数,可能使用DL等寄存器,结果如果有返回值,则通常放到AL寄存器

本次实验要用到的功能具体如下

AH 调 用 参 数
1键盘输入并回显AL=输出字符
2显示单个字符(带Ctrl+Break检查)DL=输出字符光标在字符后面
6显示单个字符(无Ctrl+Break检查)DL=输出字符光标在字符后面
8从键盘上读一个字符AL=字符的ASCII码
9显示字符串DS:DX=串地址,‘$’为结束字符光标跟在串后面
4CH返回DOS系统AL=返回码

程序设计

要求

要求是输入学号姓名,回车后回显学号姓名

然后输入一个字符,打印其ascii码值

全局变量

DSEG SEGMENT
        helloworld DB 'Hello,World!' ,0DH,0AH,24H
        next_row   DB 0DH,0AH,24H;打印换行使用
        buffer     DB 0100H dup('$');输入缓冲区
   
        STUID      DB 'please input your id >','$';提示输入学生姓名时打印
        STUNAME    DB 'please input your name >','$'
        cmdprompt  DB 'please input an alpha to get its ascii code, q to quit >','$';提示输入字符时打印
DSEG ENDS

函数设计

putchar
功能打印一个字符
调用约定al输入该字符

使用入口为2H的int 21软中断打印到屏幕

        ;调用约定:需要打印的字符->al
putchar proc
                      push   dx

                      mov    ah,02h
                      mov    dl,al
                      int    21h

                      pop    dx
                      ret
putchar endp
getchar
功能输入一个字符
调用约定al返回该字符
        ;调用约定:输入字符用al返回
getchar proc near
                      mov    ah,01h
                      mov    al,0
                      int    21H
                      retn
getchar endp
print
功能打印字符串
调用约定AX存放字符串及地址,打印到碰到$字符结束
        ;调用约定:ax指定一个buffer的基地址,用于获取一个字符串
print proc near
                      push   bx
                      push   cx
                      push   dx

                      mov    dx,ax
                      mov    ah,09H
                      mov    al,00H
                      int    21H

                      pop    dx
                      pop    cx
                      pop    bx
                      ret
print endp
newline
功能打印换行
调用约定无参数无返回值
newline proc near
                      push   ax
                      lea    ax,next_row
                      call   print
                      pop    ax
                      ret
newline endp
input
功能输入字符串
调用约定AX存放缓冲区地址,输入直到回车结束
        ;AX存放目的地址,结束时CX返回输入字符个数
input proc near
                      push   BX
        ;     push   cx
        ;     push   di
        ;     push   ax
        ;     MOV    CX, 0ffh
        ;     mov    DI, ax
        ;     mov    al,'$'
        ;     REPZ   STOSB

        ;     pop    ax

                      MOV    DX,AX
                      MOV    BX,DX
                      MOV    byte ptr DS:[BX], 0ffh
        ;     mov    [DX],BL
                      mov    ah,0ah                        ;将0ah放入ah
                      mov    al,0
                      int    21h                           ;输入字符串功能调用
                      pop    BX
                      ret
input endp
memset
功能缓冲区初始化,即c语言的memset函数
调用约定ax存放基地址,cx存放长度,bl存放初始化字符
        ;调用约定:ax存放基地址,cx存放长度,bl存放目标字符
memset proc near
                      push   di
                      mov    di,ax
        memset_circle:
                      cmp    cx,0
                      jz     memset_fini
                      mov    ds:[di],bl
                      inc    di
                      dec    cx
                      jmp    memset_circle

        memset_fini:  
                      pop    di
                      ret
memset endp
exit
功能返回函数,将控制交给调用者
调用约定无参数无返回值
exit proc near
                      mov    ah,4Ch
                      mov    al,0
                      int    21h
exit endp
hex
功能打印一个字节的16进制表示
调用约定ax存放该字节
;16进制打印一个字节
hex PROC near

                      push   ax
                      push   dx
                      mov    dx,ax
                      mov    ch, 4
        
        L1:           
                      mov    cl, 4
                      rol    dx, cl
                      mov    al,dl
                      and    al,0FH
                      add    al,30h
                      cmp    al,3ah
                      jl     printit
                      add    al,7h
        printit:      
                      call   putchar
                      dec    ch
                      jnz    L1
                      pop    dx
                      pop    ax
                      ret
hex ENDP
binary
功能打印一个字节的2进制表示
调用约定ax存放该字节
        ;二进制形式的输出,入口参数为ax
binary proc
                      push   bx                            ;数据入栈,保留数值
                      push   dx
 
                      mov    dh,0                          ;用于计数,总共8次
	
        binaryagain:  
                      cmp    dh,8
                      je     binaryover                    ;输出结束,到达函数末端
                      rol    ax,1                          ;移动一位
                      mov    bx,ax                         ;数值保留
                      and    ax,0001h                      ;剥离出最后一位
                      mov    dl,al                         ;用于输出
                      add    dl,48
                      mov    ah,2
                      int    21h
                      inc    dh                            ;计数加一
                      mov    ax,bx                         ;数值恢复
                      jmp    binaryagain                   ;再来一次
	
        binaryover:   
                      pop    dx                            ;数据出栈,数值还原
                      pop    bx
                      ret
binary endp
circle
功能循环输入字符,打印ascii值
调用约定无参数无返回值
circle proc near
        rolling:      
                      lea    ax,cmdprompt
                      call   println
                      call   getchar
                      cmp    al,'q'
                      jz     fini
                      mov    ah,0
                      call newline
                      call   hex
                      call   newline
                      jmp    rolling
        fini:         
                      retn

circle endp

程序入口

        BEGIN:        
                      MOV    AX,DSEG;设置DS段寄存器,将DSEG作为数据段
                      MOV    DS,AX


                      call   newline;遇事不决,换个行先
                      lea    AX,STUID
                      call   print;提示输入ID


                      call   newline
                      lea    AX,buffer
                      mov    cx,0ffh
                      mov    bl,'$'
                      call   memset;初始化缓冲区memset(&buffer,0xFF,'$');
                      lea    AX,buffer;设置输入目标地址
                      call   input;输入


                      call   newline
                      lea    ax,[buffer+2]
                      call   print


                      call   newline
                      lea    AX,STUNAME
                      call   print


                      call   newline
                      lea    AX,buffer
                      mov    cx,0ffh
                      mov    bl,'$'
                      call   memset
                      lea    AX,buffer
                      call   input


                      call   newline
                      lea    ax,[buffer+2]
                      call   print
                      call   newline
                
                      call   circle


                      call   exit;归还控制

完整代码

DSEG SEGMENT
        helloworld DB 'Hello,World!' ,0DH,0AH,24H
        next_row   DB 0DH,0AH,24H
        buffer     DB 0100H dup('$')
   
        STUID      DB 'please input your id >','$'
        STUNAME    DB 'please input your name >','$'
        cmdprompt  DB 'please input an alpha to get its ascii code, q to quit >','$'
DSEG ENDS

SSEG SEGMENT PARA STACK
             DW 256 DUP(?)
SSEG ENDS

CSEG SEGMENT
                      ASSUME CS:CSEG,DS:DSEG


        ;调用约定:需要打印的字符->al
putchar proc
                      push   dx
                      push   ax
                      mov    ah,02h
                      mov    dl,al
                      int    21h
                      pop    ax
                      pop    dx
                      ret
putchar endp

        ;调用约定:输入字符用al返回
getchar proc near
                      mov    ah,01h
                      mov    al,0
                      int    21H
                      retn

getchar endp



;16进制打印一个字节,调用约定:
hex PROC near

                      push   ax
                      push   dx
                      mov    dx,ax
                      mov    ch, 4
        
        L1:           
                      mov    cl, 4
                      rol    dx, cl
                      mov    al,dl
                      and    al,0FH
                      add    al,30h
                      cmp    al,3ah
                      jl     printit
                      add    al,7h
        printit:      
                      call   putchar
                      dec    ch
                      jnz    L1
                      pop    dx
                      pop    ax
                      ret
hex ENDP
        
        

        ;二进制形式的输出,入口参数为ax
binary proc
                      push   bx                            ;数据入栈,保留数值
                      push   dx
 
                      mov    dh,0                          ;用于计数,总共16次
	
        binaryagain:  
                      cmp    dh,8
                      je     binaryover                    ;输出结束,到达函数末端
                      rol    ax,1                          ;移动一位
                      mov    bx,ax                         ;数值保留
                      and    ax,0001h                      ;剥离出最后一位
                      mov    dl,al                         ;用于输出
                      add    dl,48
                      mov    ah,2
                      int    21h
                      inc    dh                            ;计数加一
                      mov    ax,bx                         ;数值恢复
                      jmp    binaryagain                   ;再来一次
	
        binaryover:   
                      pop    dx                            ;数据出栈,数值还原
                      pop    bx
                      ret
binary endp


        ;调用约定:ax指定一个buffer的基地址,用于获取一个字符串
print proc near
                      push   bx
                      push   cx
                      push   dx

                      mov    dx,ax
                      mov    ah,09H
                      mov    al,00H
                      int    21H

                      pop    dx
                      pop    cx
                      pop    bx
                      ret
print endp


        ;调用约定:ax指定一个buffer的基地址,用于获取一个字符串
println proc near
                      call   print
                      mov    al,0Dh
                      call   putchar
                      mov    al,0DH
                      call   putchar
                      ret
println endp

newline proc near
                      push   ax
                      lea    ax,next_row
                      call   print
                      pop    ax
                      ret
newline endp

        ;AX存放目的地址,结束时CX返回输入字符个数
input proc near
                      push   BX
        ;     push   cx
        ;     push   di
        ;     push   ax
        ;     MOV    CX, 0ffh
        ;     mov    DI, ax
        ;     mov    al,'$'
        ;     REPZ   STOSB

        ;     pop    ax

                      MOV    DX,AX
                      MOV    BX,DX
                      MOV    byte ptr DS:[BX], 0ffh
        ;     mov    [DX],BL
                      mov    ah,0ah                        ;将0ah放入ah
                      mov    al,0
                      int    21h                           ;输入字符串功能调用
                      pop    BX
                      ret
input endp
        
        
circle proc near
        rolling:      
                      lea    ax,cmdprompt
                      call   println
                      call   getchar
                      cmp    al,'q'
                      jz     fini
                      mov    ah,0
                      call newline
                      call   hex
                      call   newline
                      jmp    rolling
        fini:         
                      retn

circle endp


        ;调用约定:ax存放基地址,cx存放长度,bl存放目标字符
memset proc near
                      push   di
                      mov    di,ax
        memset_circle:
                      cmp    cx,0
                      jz     memset_fini
                      mov    ds:[di],bl
                      inc    di
                      dec    cx
                      jmp    memset_circle

        memset_fini:  
                      pop    di
                      ret
memset endp


exit proc near
                      mov    ah,4Ch
                      mov    al,0
                      int    21h
exit endp
       
        BEGIN:        
                      MOV    AX,DSEG
                      MOV    DS,AX


                      call   newline
                      lea    AX,STUID
                      call   print


                      call   newline
                      lea    AX,buffer
                      mov    cx,0ffh
                      mov    bl,'$'
                      call   memset
                      lea    AX,buffer
                      call   input


                      call   newline
                      lea    ax,[buffer+2]
                      call   print


                      call   newline
                      lea    AX,STUNAME
                      call   print


                      call   newline
                      lea    AX,buffer
                      mov    cx,0ffh
                      mov    bl,'$'
                      call   memset
                      lea    AX,buffer
                      call   input


                      call   newline
                      lea    ax,[buffer+2]
                      call   print
                      call   newline
                
                      call   circle


                      call   exit
CSEG ENDS
        END  BEGIN

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/17311.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

wav to image 的数据集制作代码

🍿*★,*:.☆欢迎您/$:*.★* 🍿 目录 背景 正文 总结 背景描述

python+django网吧会员管理系统

系统项目截图 本网吧管理系统主要包括三大功能模块,即管理员、会员、网管。 (1)管理员模块:首页、个人中心、会员管理、网管管理、商品类型管理、商品信息管理、购买商品信息管理、呼叫网管管理、电脑信息管理、用户上机管理、用户…

汇编语言外中断

外中断 文章目录外中断1.外中断概念2.PC机键盘的处理过程1.外中断概念 CPU在计算机系统中,除了能够执行指令,进行运算以外,还应该能够对外部设备进行控制,接收它们的输入,向它们进行输出(I/O能力&#xff0…

如何把家装修出温馨的感觉?极家好不好

如何把家装修出温馨的感觉?极家好不好?想要让家变成理想的样子!如何进行! 第一步:找一个靠谱的装修团队,特别重要的是项目经理,极家好不好这个真的真的真的很重要‼️ 一个好的装修团队&#xf…

Windbg可以看到Visual Studio中看不到的有效函数调用堆栈

目录 1、Visual Studio中看不到有效的函数调用堆栈 2、使用Windbg调试运行主程序,看到了有效的函数调用堆栈 3、根据函数名和行号去查看对应的C源码,定位问题 4、总结 VC常用功能开发汇总(专栏文章列表,欢迎订阅,持…

Frechet distance距离计算原理及python实现

Frechet distance概念 弗雷彻距离(Frechet distance)定义了一种考虑位置和点的次序的计算两条曲线相似度的方法,常用于时间序列相似度度量和轨迹序列相似度度量。该指标的算法可用the walking dog problem来描述:想象一个人用牵引带遛狗的同时&#xff0…

“碳”零排放是什么意思

在气候变化问题上拖拖拉拉之后,澳大利亚联邦政府终于承诺到 2050 年实现净零排放,世界其他大部分地区也是如此。几乎所有发达经济体现在都加强了 2030 年目标,并承诺在本十年将排放量大致减半。 需要记住的重要一点是,如果没有本…

abbyy finereader2023泰比文字识别PDF编辑软件

近年来,随着盲人数字阅读的普及推广,PDF格式的电子书越来越受到大家的关注和喜爱,但受读屏软件功能的限制,扫描版的PDF电子书是无法直接阅读的,这就需要将其转换为可阅读的文档格式,可对于大多数视障读者来…

Linux基本指令1

系统内核:Centos 7.6 64位操作系统(OS, operating system)是什么?世界上第一台计算机诞生的时候是没有操作系统的,但是这个计算机操作起来效率特别低,难度非常高。使用对象只有科学家。操作系统的意义就在于降低操作难度&#…

数据库高级 V

数据库高级 V 1.JVM内存结构,JVM调优,GC常用算法 如何调整堆内存大小,以及调整各年代之间的比例,更换GC 修改JVM堆大小方式: 找到Idea安装目录下的-->bin-->idea.exe.vmoptions -server -Xms128m //堆初始大小 -Xmx512m //最大堆内存 -XX:ReservedCodeCacheSize240m -XX…

[附源码]计算机毕业设计JAVA花卉销售管理系统

[附源码]计算机毕业设计JAVA花卉销售管理系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybati…

Linux umask命令详解,Linux修改文件默认访问权限

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 umask命令一、查看umask值二、临时修改umask值三、永久修改umask值四、文件和目录的默认权限五、权限数值对照表六、常用umask值及对应权限七…

最近公共祖先(朴素法、倍增法、(递归法))

目录 一、前言 二、题一:二叉树的最近公共祖先 1、上链接 2、基本思路 (1)朴素法 (2)LCA倍增法。 3、朴素法代码 (1)C(AC) (2)python&am…

1.2 极限的性质【极限】

1.2 极限的性质【极限】 1.2.1 唯一性 极限的唯一性 引入 假设警察逮捕罪犯,把犯人追到了悬崖边上,那么犯人只能在悬崖边束手就擒,这个时候悬崖边是犯人逃跑的极限位置,别无去处,位置唯一。 考试或比赛的时候都努…

web前端开发技术纯静态 (12306官网 1页)

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 公司官网网站 | 企业官网 | 酒店官网 | 等网站的设计与制 | HTML期末大学生网页设计作业,Web大学生网页 HTML:结构 CSS&#…

WebDriverManager自动管理浏览器Driver包

WebDriverManager是什么? WebDriverManager是一个开源 Java 库,它以全自动方式管理(即下载、设置和维护) Selenium WebDriver所需的驱动程序(例如,chromedriver、geckodriver、msededriver 等)…

【ASM】字节码操作 工具类与常用类 Printer、ASMifier、Textifier 介绍

文章目录 1.概述2. Printer2.1 class info2.2 fields2.3 constructors2.4 methods3. ASMifier与Textifier3.1 如何使用3.2 从命令行使用3.3 visit方法3.4 从代码中使用1.概述 在上一篇文章中:【ASM】字节码操作 工具类与常用类 TraceClassVisitor 介绍 我们知道了如何使用Tra…

nodejs+vue+elementui个人图书分享共享网站

本面向图书共享系统主要包括两大功能模块,即用户功能模块和管理员功能模块。 (1)管理员模块:首页、个人中心、图书分类管理、图书信息管理、用户管理、用户分享管理、联系我们、社区交流、系统管理。 (2)用…

多功能电子密码锁的设计与制作

目 录 第一章 绪论 1 1.1 课题背景和意义 1 1.2 多功能电子密码锁发展趋势 2 第二章 总体设计方案的确定 3 2.1 多功能电子密码锁设计的具体要求 3 2.2 总体设计方案选定 3 第三章 系统硬件设计 5 3.1 设计原理 5 3.2 单片机STC89C51简介 5 3.3 AT24C02存储芯片 9 3.4 LCD显示模…

《Deep learning Based Text Classification:A comprehensive Review》文本综述

介绍 深度学习综述年年有,今年特别多。随着深度学习在机器学习领域的快速发展,对每个任务进行算法的总结对于之后的发展是有益的。综述可以梳理发展脉络,对比算法好坏,并为以后的研究方向进行启发。本文是在NLP领域中重要的任务-…