Liny_@NotePad

沉迷ACG中

第一个asm……好囧

YOYO posted @ 2008年11月17日 21:03 in 【杂物箱】乱七八糟 with tags 汇编 , 1856 阅读

这真是一门可怕的学科 TAT

编写程序实现:从键盘输入0~9中任意一个自然数,将其平方值在屏幕上显示出来(要求使用查表法)。

于是,

  1. DATAS SEGMENT
  2.     INFOR1 DB 'please input the number:$'
  3.     INFOR2 DB 0AH,0DH,'the result is:$'
  4.     SQUTAB DB 0,1,4,9,16,25,36,49,64,81
  5.     SQUBUF DB ?
  6.     STRING DB 2 DUP(30h) ,'$'
  7. DATAS ENDS
  8.  
  9. CODES SEGMENT
  10.     ASSUME CS:CODES,DS:DATAS
  11. START:
  12.     MOV AX,DATAS
  13.     MOV DS,AX
  14.    
  15.     MOV DX,OFFSET INFOR1                        ;显示INFOR1内容
  16.     MOV AH,9
  17.     INT 21H
  18.    
  19.     MOV AH,1                        ;输入数字
  20.     INT 21H
  21.     SUB AL,30H
  22.    
  23.     MOV BX,OFFSET SQUTAB   ;读入表
  24.     XLAT                                                        ;查询
  25.     MOV SQUBUF,Al
  26.    
  27.     MOV DX,OFFSET INFOR2                        ;显示INFOR2内容
  28.     MOV AH,9
  29.     INT 21H
  30.    
  31.     MOV AX,0
  32.     MOV AL,SQUBUF
  33.     MOV BL,10
  34.     DIV BL
  35.     ADD STRING[1],AH
  36.     ADD STRING[0],AL
  37.    
  38.     LEA DX,STRING
  39.     MOV AH,09H
  40.     INT 21H
  41.    
  42.     MOV AH,4CH
  43.     INT 21H
  44. CODES ENDS
  45.     END START
然后老师讲了一下,发现有符合我们现在学到的方法…… - -:
  1. DATAS SEGMENT
  2.     INFOR1 DB 'please input the number:$'
  3.     INFOR2 DB 0AH,0DH,'the result is:$'
  4.     SQUTAB DB 00,01,04,09,16,25,36,49,64,81
  5.     SQUBUF DB ?
  6. DATAS ENDS
  7.  
  8. CODES SEGMENT
  9.     ASSUME CS:CODES,DS:DATAS
  10. START:
  11.     MOV AX,DATAS
  12.     MOV DS,AX
  13.    
  14.     MOV DX,OFFSET INFOR1                        ;显示INFOR1内容
  15.     MOV AH,9
  16.     INT 21H
  17.    
  18.     MOV AH,1                        ;输入数字
  19.     INT 21H
  20.     SUB AL,30H
  21.     MOV CL,AL
  22.    
  23.     MOV DX,OFFSET INFOR2                        ;显示INFOR2内容
  24.     MOV AH,9
  25.     INT 21H
  26.    
  27.     MOV BX,OFFSET SQUTAB
  28.     MOV AH,0
  29.     MOV AL,CL
  30.     XLAT
  31.     AAM
  32.    
  33.     MOV BH,AL
  34.     ADD AH,30H
  35.     MOV DL,AH
  36.     MOV AH,2
  37.     INT 21H
  38.    
  39.     MOV AL,BH
  40.     ADD AL,30H
  41.     MOV DL,AL
  42.     MOV AL,2
  43.     INT 21H
  44.    
  45.     MOV AH,4CH
  46.     INT 21H
  47. CODES ENDS
  48.     END START

 


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter