⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 7ex1.asm

📁 题目:抢答器控制模拟程序设计 任务: 用汇编语言模拟设计一抢答器工作的程序。
💻 ASM
字号:
;incude的使用 ,包含disp.asm 
;在数据段中定义八个字节数据,把这些数据转换成16进制数的ASCll码存在上述数据之后,
;然后在屏幕上显示这些数据。显示数据用DOS功能2号调用,每个数据用空格分隔。
  NAME EX1
  PAGE  50,70
;--------DATA DEFINE-----
 DATA   SEGMENT
 A1    DB  30H,34H,42H,43H,44H,45H,46H,47H   
      B1=$-A1
      B2=B1*2
 A2    DB  B2   DUP(?)
DATA   ENDS
STACK  SEGMENT PARA  STACK 
 STA   DW  100 DUP(?)
STACK  ENDS
CODE   SEGMENT
       ASSUME  CS:CODE,DS:DATA,SS:STACK    
 START:  MOV  AX,DATA
         MOV  DS,AX
         MOV  AX,STACK
         MOV  SS,AX
         MOV  AX,100
         MOV  SP,AX
         mov  SI,OFFSET  A1
         MOV  DI,OFFSET  A2
         MOV  CX,B2                        ;要转换的字节数
   DO:   MOV      AL,[SI]                  ;取一个字节到AL 
         CALL     EX2_16                   ;调转换子程序
         INC      SI                       ;指向下个数 
         LOOP     DO

            MOV   DI,OFFSET  A2          ;指向ASCII码区
            MOV   CX,B2
            CALL  DISPLAY                ;调显示子程序
            MOV   AH,4CH                 ;返回DOS
            INT   21H

         
;--------2 exchange 16-----
 EX2_16 PROC    NEAR
       PUSH     CX                ;保护现场
       PUSH     BX
 G1:   MOV      BL,2              ;需转换2次
       MOV      BH, AL            ;AL中的数暂存BH
       MOV      CL, 4             ;置移位位数
       ROL      AL, CL            ;循环左移4位
G2:    AND      AL, 0FH           ;得到低4位
       CMP      AL,10             ; BL <10?
       JB       S                 ; BL<10,转
       ADD      AL,07H            ;大于10,加7
  S:   ADD      AL,30H 
       MOV      [DI],AL           ;存ASCII码
          INC   DI                ;修改地址 
          MOV   AL,BH
          DEC   BL                  
          JNZ   G2                ;2个数没转换完,继续
                                  ;恢复现场
          POP   BX 
          POP     CX
          RET                     ;子程序返回
 EX2_16   ENDP
 
  include disp.asm

 CODE      ENDS
           END    START

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -