我想写一个程序,检查数字是否为素数。
我的第一个问题:如何存储输入(0-999)号码?
.MODEL SMALL
.STACK 100h
.DATA
DisplayString DB 'Enter number up to 120:', 13,10,'$'
.CODE
Begin:
MOV AX,@DATA
MOV DS,AX
MOV AH,9
MOV DX,OFFSET DisplayString
INT 21h
MOV ah,1h
INT 21h ;read into AL
;The code to store the number here
MOV AH,4Ch
INT 21h
END Begin
嗯,如果它是0-9很容易,但如果数量是120?我该如何存放?我想过使用一个数组,然后将每个元素乘以10,然后添加下一个。
例如,120将类似于:(((1 * 10)+ 2)* 10)+0
我的代码:
; //READ 3 DIGITS // ;
;read first digit fo e.g. '1'
MOV ah,1h
INT 21h ;read into AL
; BL will be 10.
MUL num ; AX = AL * num
MOV BL,AL
; read second digit for e.g. '2'
MOV ah,1h
INT 21h ;read into AL
;BL will be '11' now.
ADD BL,AL
;BL will be '110' now.
MUL num ; AX = AL * num
MOV BL,AL
;read third digit
MOV ah,1h
INT 21h ;read into AL
;AL is 3, so BL will be '123'
ADD BL,AL
; // FINISH READING 3 DIGITS // ;