01_汇编语言(基本格式_模板)

 

计算1+2+3+...+100的和

 1 ;计算1+2+3+...+100的和

 2 DATA SEGMENT     ;数据段开始

 3     SUM DW ?

 4 DATA ENDS

 5 

 6 CODE SEGMENT    ;代码段开始

 7     ASSUME CS:CODE,DS:DATA

 8 START:  MOV AX,DATA

 9         MOV DS,AX

10         XOR AX,AX

11         MOV CX,100

12 NEXT:   ADD AX,CX

13         LOOP NEXT

14         MOV SUM,AX

15         MOV AH,4CH    ;4C号功能调用:终止当前程序并返回调用程序

16         INT 21H    

17 CODE ENDS    ;代码段结束

18 END        ;汇编程序结束

判断变量NUM中的无符号数是否为素数

程序要求:

  编写一个汇编程序,判断变量NUM中的无符号数是否为素数,如果是素数则向屏幕输出字符P,如果是合数,向屏幕输出C。

其中NUM在数据段中给定。

程序流程:

 

01_汇编语言(基本格式_模板)

代码实现:

 

 1 ;编写一个汇编程序,判断变量NUM中的无符号数是否为素数,

 2 ;如果是素数则向屏幕输出字符P,如果是合数,向屏幕输出C。

 3 ;其中NUM在DATA数据段中给定了

 4 DATA SEGMENT    ;数据段

 5     NUM DW 13

 6 DATA ENDS

 7 CODE SEGMENT    ;代码段

 8      ASSUME CS:CODE,DS:DATA

 9 START:  MOV AX,DATA

10         MOV DS,AX   ;将数据段DATA的段基址送DS

11         MOV SI,1    ;SI 16位源变址指针寄存器

12         

13 BACK:   INC SI

14         XOR AX,AX

15         XOR DX,DX

16         MOV AX,NUM

17         CMP AX,SI   ;比较被除数(NUM)和除数(SI)是否相等

18         JZ PRINT_P  ;JZ 等于则跳转

19         DIV SI      ;用DX和AX组成的32位数除以16位的SI

20         CMP DX,0    ;余数在DX里边,判断余数是否为0

21         JNZ BACK    ;JNZ 不等于则跳转

22         

23 PRINT_C:XOR DX,DX

24         MOV DL,'C'

25         MOV AH,2

26         INT 21H

27         JMP EXIT    ;JMP 无条件跳转指令

28         

29 PRINT_P:XOR DX,DX

30         MOV DL,'P'

31         MOV AH,2

32         INT 21H

33         

34 EXIT:   MOV AH,4CH

35         INT 21H

36 CODE ENDS

37 END START 

你可能感兴趣的:(汇编语言)