yeruo 2015-06-18 12:44 采纳率: 25%
浏览 2579

MOV AL,INPUT+2 ;这里为什么+2,谢谢

;功能:输入一个0~19的整数,输出其平方值

;作者:KDF5000

;时间:2012.11.9

.386

DATA SEGMENT USE16

SQUARE DW 0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361 ;存入0~19的平方值便于查询

INPUT DB 8

DB ?

DB 8 DUP('$') ;次缓冲区用于存放输入的值

OUTPUT DB '$' ;此区存放平方值的输出

ERROR DB 'your input is incorrect!$'

MESSAGE DB 'please enter a number(0~19):$'

RESULT DB 0DH,0AH,' the result is:$'

EXITMES DB 0DH,0AH,'thank you for your use!',0DH,0AH,'$'

HUANHANG DB 0DH,0AH,'$'

DATA ENDS

STACK SEGMENT USE16 STACK

DB 200 DUP(0)

STACK ENDS

CODE SEGMENT USE16

ASSUME DS:DATA,CS:CODE,SS:STACK

BEGIN:

MOV AX,DATA

MOV DS,AX

 ;输出提示信息  
  LEA   DX,MESSAGE  
  MOV   AH,9  
  INT   21H  

  ; 输入数值  
  LEA  DX,INPUT  
  MOV  AH,10  
  INT  21H  

  ;如果输入空格则推出程序  
  MOV   AL,INPUT+2  ;***********************这里为什么+2
  CMP   AL,20H  
  JE    EXIT  

  ;取出输入的数值  
  LEA   SI,INPUT+2  
  MOV   AX,0  
  MOV   BL,10  
  MOV   CL,INPUT+1    ;记录循环的次数  

  ;将输入的值放到AX  

LOPA: MOV DL,[SI]

DEC CL

SUB DL,30H

MUL BL

ADD AX,DX

INC SI

CMP CL,0

JE NEXT

JMP LOPA

NEXT:

;如果输入的数字大于十九或者小于小于0报错

CMP AX,19

JG ERROR1

CMP AX,0

JB ERROR1

  MOV   BP,AX              ;将输入的数据作为变量  
  MOV   AX,SQUARE[EBP*2]   ;此时AX存放平方值  

  MOV   CL,10   ;设置除数  
  MOV   SI,OFFSET OUTPUT  

LOPB: ;次循环为把已经存入的平方值转换为十进值输出

DEC SI

DIV CL

ADD AH,30H

MOV [SI],AH

MOV AH,0

CMP AL,0

JNE LOPB

;输出结果提示

LEA DX,RESULT

MOV AH,9

INT 21H

;输出十进制平方值

MOV DX,SI

MOV AH,9

INT 21H

;输出换行

LEA DX,HUANHANG

MOV AH,9

INT 21H

;跳到开始继续输入

JMP BEGIN

ERROR1:

LEA DX,HUANHANG

MOV AH,9

INT 21H

  LEA  DX,ERROR  
  MOV   AH,9  
  INT   21H  

  LEA  DX,HUANHANG  
  MOV   AH,9  
  INT   21H  

  JMP   BEGIN  

EXIT:

LEA DX,EXITMES ;输出退出信息

MOV AH,9

INT 21H

  MOV   AH,4CH  
  INT   21H  

CODE ENDS

END BEGIN

  • 写回答

2条回答

  • yeruo 2015-06-18 12:44
    关注

    ;如果输入空格则推出程序

    MOV AL,INPUT+2 ;***********************这里为什么+2
    CMP AL,20H

    JE EXIT

    这里为什么+2啊。。。谢谢啦~~~

    评论

报告相同问题?

悬赏问题

  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥15 如何修改pca中的feature函数
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况