次いで、[8086] 1線順次の6×6の二次元アレイに36の自然数、および三角形アレイの左下半分を印刷

ツール:emu8086


; You may customize this and other start-up templates; 
; The location of this template is c:\emu8086\inc\0_com_template.txt

org 100h

;矩阵维数为6 
     
DATA  SEGMENT       
 NUM  DB  100 DUP()   
DATA ENDS

CODE  SEGMENT  
      
  ASSUME  DS:DATA, CS:CODE   
  
START:

  MOV  AX, DATA 
  MOV  DS, AX 
  LEA  SI, NUM
  MOV  CL, 1

LOOP1:               ;生成矩阵

  MOV  [SI], CL  
  INC  SI  
  INC  CL 
  CMP  CL, 37 ;37 
  JNZ  LOOP1


  MOV  CX, 1  
  MOV  SI, 0

LOOP2:

  MOV  BX, 0

LOOP3:

  MOV  AL, NUM[SI + BX] ;索引数组元素
  MOV  AH, 0 
  MOV  DL, 10   
  DIV  DL 
  MOV  DL, AL 
  ADD  DL, 30H    ;转化成ascii码
  MOV  DH, AH 
  MOV  AH, 2      ;设置INT输出DL中字符
  CMP  DL, 30H    
  
  JZ   ZERO       ;十位为0则不输出
  INT  21H        ;输出十位
ZERO:  
  MOV  DL, DH 
  ADD  DL, 30H  
  INT  21H        ;输出个位
  MOV  DL, 20H 
  INT  21H


  INC  BX           
  CMP  BX, CX        
  JNZ  LOOP3        


  MOV  DL, 0DH    ;回车     
  MOV  AH, 2           
  INT  21H            
  MOV  DL, 0AH    ;换行  
  INT  21H           


  ADD  SI, 6      ;6       
  INC  CX         ;计算行数,同时也是下一次循环每行的列数     
  CMP  CX, 7      ;7 
  JNZ  LOOP2

               
  MOV  AH, 4CH    ;设置INT结束      
  INT  21H                   
  
  END  START
  CODE  ENDS      
ret




 

おすすめ

転載: blog.csdn.net/saber_jk/article/details/84865202