要求是程序运行后 先显示:please input an integer
然后输入0-11的中的一个数 显示出它的平方数
自己做的问题太多了。。。。。
stack SEGMENT STACK
stack ENDS
DATA SEGMENT
STARTBUFF DB 'please input an integer'
TABLE DB 0,1,4,9,16,25,36,49,64,81,100,121
FACTOR DB 100, 10, 1
;STRRESULT DB 31,32,33,"$"
STRRESULT DB ?,?,?,"$"
RSLT DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:stack
START: MOV AX,DATA
MOV DS,AX
MOV AH,00H
INT 16H
AND AL,0FH
XOR BX,BX
MOV BL,AL
LEA SI,TABLE
MOV AL,[SI+BX]
;MOV RSLT,AL
LEA SI,STRRESULT
LEA DI, FACTOR
XOR DX,DX
MOV BX,100
;MOV AX, 3
MOV CX, 3
AGAIN: DIV BYTE PTR[DI];AX除因子
ADD AL,30H;商加上30即可得到相应数字的ASCII码
MOV BYTE PTR[SI],AL
INC SI;结果
INC DI;因子
MOV DX,CX
MOV CL,8
SHR AX,CL;将余数作为下一次的被除数
MOV CX,DX
LOOP AGAIN
LEA SI,STRRESULT
bb:
CMP BYTE PTR [SI],'0' ;不输出前面的0字符
JNE print
INC SI
LOOP bb
print:
MOV DX,SI
MOV AH,09h
INT 21h
;MOV DL, [SI]
;MOV AH,02h
;INT 21h
MOV AH,00H
INT 16H
MOV AH,4CH
INT 21H
CODE ENDS
END START