⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 example.out

📁 pl0编译器,c语言环境下实现,PL/0语言编译程序采用以语法分析为核心、一遍扫描的编译方法。词法分析和代码生成作为独立的子程序供语法分析程序调用。程序供语法分析程序调用。
💻 OUT
字号:
    0  const m = 7, n = 85;
    1  var x, y, z, q, r;
    1  
    1  procedure multiply;
    1  var a, b;
    2  begin
    3  	a := x; b := y; z := 0;
    9  	while b > 0 do
   13  	begin
   13  		if odd b then z := z + a;
   20  		a := 2 * a; b := b / 2;
   28  	end
   28  end;

    2 INT	0	5
    3 LOD	1	3
    4 STO	0	3
    5 LOD	1	4
    6 STO	0	4
    7 LIT	0	0
    8 STO	1	5
    9 LOD	0	4
   10 LIT	0	0
   11 OPR	0	11
   12 JPC	0	29
   13 LOD	0	4
   14 OPR	0	6
   15 JPC	0	20
   16 LOD	1	5
   17 LOD	0	3
   18 OPR	0	2
   19 STO	1	5
   20 LIT	0	2
   21 LOD	0	3
   22 OPR	0	4
   23 STO	0	3
   24 LOD	0	4
   25 LIT	0	2
   26 OPR	0	5
   27 STO	0	4
   28 JMP	0	9
   29 OPR	0	0

   30  
   30  procedure divide;
   30  var w;
   31  begin
   32  	r := x; q := 0; w := y;
   38  	while w > y do
   42  	begin
   42  		q := 2 * q; w := w / 2;
   50  		if w <= r then
   53  		begin
   54  			r := r - w;
   58  			q := q + 1;
   62  		end;
   62  	end
   62  end;

   31 INT	0	4
   32 LOD	1	3
   33 STO	1	7
   34 LIT	0	0
   35 STO	1	6
   36 LOD	1	4
   37 STO	0	3
   38 LOD	0	3
   39 LOD	1	4
   40 OPR	0	11
   41 JPC	0	63
   42 LIT	0	2
   43 LOD	1	6
   44 OPR	0	4
   45 STO	1	6
   46 LOD	0	3
   47 LIT	0	2
   48 OPR	0	5
   49 STO	0	3
   50 LOD	0	3
   51 LOD	1	7
   52 OPR	0	10
   53 JPC	0	62
   54 LOD	1	7
   55 LOD	0	3
   56 OPR	0	3
   57 STO	1	7
   58 LOD	1	6
   59 LIT	0	1
   60 OPR	0	2
   61 STO	1	6
   62 JMP	0	38
   63 OPR	0	0

   64  
   64  procedure gcd;
   64  var f, g;
   65  begin
   66  	f := x;
   68  	g := y;
   70  	while f <> g do
   74  	begin
   74  		if f < g then g := g - f;
   82  		if g < f then f := f - g;
   90  	end
   90  end;

   65 INT	0	5
   66 LOD	1	3
   67 STO	0	3
   68 LOD	1	4
   69 STO	0	4
   70 LOD	0	3
   71 LOD	0	4
   72 OPR	0	8
   73 JPC	0	91
   74 LOD	0	3
   75 LOD	0	4
   76 OPR	0	9
   77 JPC	0	82
   78 LOD	0	4
   79 LOD	0	3
   80 OPR	0	3
   81 STO	0	4
   82 LOD	0	4
   83 LOD	0	3
   84 OPR	0	9
   85 JPC	0	90
   86 LOD	0	3
   87 LOD	0	4
   88 OPR	0	3
   89 STO	0	3
   90 JMP	0	70
   91 OPR	0	0

   92  
   92  begin
   93  	x := m; y := n; call multiply;
   98  	x := 25; y := 3; call divide;
  103  	x := 34; y := 36; call gcd;
  108  end.

   92 INT	0	8
   93 LIT	0	7
   94 STO	0	3
   95 LIT	0	85
   96 STO	0	4
   97 CAL	0	2
   98 LIT	0	25
   99 STO	0	3
  100 LIT	0	3
  101 STO	0	4
  102 CAL	0	31
  103 LIT	0	34
  104 STO	0	3
  105 LIT	0	36
  106 STO	0	4
  107 CAL	0	65
  108 OPR	0	0

Begin executing PL/0 program.
7
85
7
85
0
7
14
42
28
21
35
56
10
112
5
147
224
2
448
1
595
896
0
25
3
25
0
3
34
36
34
36
End executing PL/0 program.

    0 JMP	0	92
    1 JMP	0	2
    2 INT	0	5
    3 LOD	1	3
    4 STO	0	3
    5 LOD	1	4
    6 STO	0	4
    7 LIT	0	0
    8 STO	1	5
    9 LOD	0	4
   10 LIT	0	0
   11 OPR	0	11
   12 JPC	0	29
   13 LOD	0	4
   14 OPR	0	6
   15 JPC	0	20
   16 LOD	1	5
   17 LOD	0	3
   18 OPR	0	2
   19 STO	1	5
   20 LIT	0	2
   21 LOD	0	3
   22 OPR	0	4
   23 STO	0	3
   24 LOD	0	4
   25 LIT	0	2
   26 OPR	0	5
   27 STO	0	4
   28 JMP	0	9
   29 OPR	0	0
   30 JMP	0	31
   31 INT	0	4
   32 LOD	1	3
   33 STO	1	7
   34 LIT	0	0
   35 STO	1	6
   36 LOD	1	4
   37 STO	0	3
   38 LOD	0	3
   39 LOD	1	4
   40 OPR	0	11
   41 JPC	0	63
   42 LIT	0	2
   43 LOD	1	6
   44 OPR	0	4
   45 STO	1	6
   46 LOD	0	3
   47 LIT	0	2
   48 OPR	0	5
   49 STO	0	3
   50 LOD	0	3
   51 LOD	1	7
   52 OPR	0	10
   53 JPC	0	62
   54 LOD	1	7
   55 LOD	0	3
   56 OPR	0	3
   57 STO	1	7
   58 LOD	1	6
   59 LIT	0	1
   60 OPR	0	2
   61 STO	1	6
   62 JMP	0	38
   63 OPR	0	0
   64 JMP	0	65
   65 INT	0	5
   66 LOD	1	3
   67 STO	0	3
   68 LOD	1	4
   69 STO	0	4
   70 LOD	0	3
   71 LOD	0	4
   72 OPR	0	8
   73 JPC	0	91
   74 LOD	0	3
   75 LOD	0	4
   76 OPR	0	9
   77 JPC	0	82
   78 LOD	0	4
   79 LOD	0	3
   80 OPR	0	3
   81 STO	0	4
   82 LOD	0	4
   83 LOD	0	3
   84 OPR	0	9
   85 JPC	0	90
   86 LOD	0	3
   87 LOD	0	4
   88 OPR	0	3
   89 STO	0	3
   90 JMP	0	70
   91 OPR	0	0
   92 INT	0	8
   93 LIT	0	7
   94 STO	0	3
   95 LIT	0	85
   96 STO	0	4
   97 CAL	0	2
   98 LIT	0	25
   99 STO	0	3
  100 LIT	0	3
  101 STO	0	4
  102 CAL	0	31
  103 LIT	0	34
  104 STO	0	3
  105 LIT	0	36
  106 STO	0	4
  107 CAL	0	65
  108 OPR	0	0

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -