ASM 源程序格式示例

   1: ;汇编语言源程序的格式
   2: PAGE 60,132
   3: TITLE add2Nums
   4: ;
   5: STSEG    SEGMENT    STACK        ;堆栈段
   6:         DB 64 DUP(?)    ;在堆栈里申请了64个字节地址
   7: STSEG    ENDS        
   8: ;-------------------------
   9: DTSEG    SEGMENT            ;数据段
  10:     DATA1    DB    36H
  11:     DATA2    DB    4BH
  12:     SUM        DB    ?            ;未定义大小
  13: DTSEG    ENDS
  14: ;-------------------------
  15: CDSEG    SEGMENT            ;代码段
  16: MAIN    PROC    FAR        ;程序的主过程,定义了一个MAIN函数,FAR表示可以多行
  17:         ASSUME CS:CDSEG, DS:DTSEG, SS:STSEG    ;分配段寄存器,把每个段名分配到相应的寄存器上
  18: START:    
  19:     MOV    AX,DTSEG    ;数据段地址
  20:     MOV    DS,AX        ;装入DS
  21:     MOV    AL,DATA1    ;取得第1个操作数
  22:     MOV    BL,DATA1    ;取得第2个操作数
  23:     ADD    AL,BL        ;两个操作数相加
  24:     MOV    SUM,AL        ;将和存入SUM单元
  25:  
  26:     MOV    AL,SUM    
  27:         AND  AL,0F0H                 ;取高4位
  28:         SHR  AL,4
  29:         CMP  AL,0AH                  ;是否是A以上的数
  30:         JB   C2       
  31:         ADD  AL,07H   
  32: C2:     ADD  AL,30H   
  33:         MOV  DL,AL                   ;show character 
  34:         MOV  AH,02H
  35:         INT  21H
  36:  
  37:         MOV  AL,SUM
  38:         AND  AL,0FH                  ;取低4位
  39:         CMP  AL,0AH
  40:         JB   C3
  41:         ADD  AL,07H
  42: C3:     ADD  AL,30H
  43:         MOV  DL,AL                   ;show character 
  44:         MOV  AH,02H
  45:         INT  21H
  46:         
  47:     MOV    AH,4CH        ;设置返回DOS功能
  48:     INT    21H            ;DOS调用
  49:         
  50: MAIN    ENDP
  51: CDSEG    ENDS
  52:     END    START        

你可能感兴趣的:(c,汇编,dos,语言,character)