汇编实例集.docVIP

  • 10
  • 0
  • 约1.65万字
  • 约 30页
  • 2018-04-02 发布于重庆
  • 举报
汇编实例集.doc

JmpTable实现字符串基本输入输出JmpTable实现字符串基本输入输出 DATAS SEGMENT STR DB 0AH, 0DH, ---------------------------------------- ;0AH为垂直Tab键输出下移一行后移一位 0DH为回车键输出回该段首 DB 0AH, 0DH, Please choice action:, 0AH, 0DH DB 0AH, 0DH, 1.Input a string DB 0AH, 0DH, 2.Cout the string just inputed DB 0AH, 0DH, 3.Exit DB 0AH, 0DH, -----------------------------------------, 0AH, 0DH,$ STR1 DB 0AH, 0DH, Please input a string, Enter to confirm, 0AH, 0DH,$ STR2 DB 0AH, 0DH, The string you just input is:, 0AH, 0DH, $ STR3 DB 0AH, 0DH, You have been exit, 0AH, 0DH, $ STRIN DB 150 ;定义一个字符串用于字符串的输入存储,串第一个字节为串的最大长度 DB ;第二个字节为串的实际长度 DB 150 DUP $ JTAB DW CASE1, CASE2, EXIT ;定义跳转表,以该表存储跳转语句的地址 DATAS ENDS CODES SEGMENT ASSUME CS: CODES, DS: DATAS START: MOV AX, DATAS ;将数据段地址送到AX中 MOV DS, AX ;将数据段的内容送到DS MENU: LEA DX, STR ;将STR的偏移地址送到DX寄存器 MOV AH, 9 ;系统调用 输出STR的提示菜单 INT 21H ; MOV AH, 01H ;系统调用 输入一个字符用于功能选择 INT 21H ;字符默认输入到AL中 SUB AL, 49 ;求出要跳转位置在跳转表中的偏移量 SHL AL, 1 ;WORD为两个字节,偏移地址乘2 AND AH, 0 ;对AH清空 LEA BX, JTAB ;将跳转表的基址存到BX中 ADD BX, AX ;基址+偏移得 具体跳转地址 JMP WORD PTR[BX] ;跳转到BX所指向的地址 CASE1: LEA DX, STR1 ;将STR1的偏移地址送到DX寄存器 MOV AH, 9 ;系统调用 输出STR的提示菜单 INT 21H ; LEA DX, STRIN ;将STRIN的偏移地址送到DX寄存器 MOV AH, 0AH ;读取一个字符串直到回车为止 读取到STRIN中 INT 21H ; JMP MENU ;回到提示菜单 CASE2: LEA DX, STR2 ;将STR2的偏移地址送到DX寄存器 MOV AH, 9 ;系统调用 输出STR的提示菜单 INT 21H ; LEA DX, STRIN+2 ;将STRIN的偏移地址送到DX寄存器,从第3个字节开始存储 INT 21H ;系统调用 输出字符串STRIN JMP MENU ;回到提示菜单 EXIT: LEA DX, STR3 ;将STR3的偏移地址送到DX寄存器 MOV AH, 9 ;系统调用 输出字符串STRIN INT 21H ; MOV AH, 4CH ;调用 系统结束 INT 21H CODES ENDS END START 2.IN OUT 指示灯控制 DATAS SEGMENT STR DB 0AH, 0DH, ----------------------------------------- DB 0AH, 0DH, Light control:, 0AH, 0DH DB 0AH, 0DH, 1.four light together lighting circle DB 0AH, 0DH, 2.lighting one by one circle DB 0AH, 0DH, 3.light incress circle DB 0AH, 0DH, 4.light Set free DB 0AH, 0DH, 5.Realtime control DB 0AH, 0DH, 6.Exit DB 0AH, 0DH, ------------------------------------

文档评论(0)

1亿VIP精品文档

相关文档