Artificial Intelligence Programming Lab(AIPLab) 討論區

Please login or register.

請輸入帳號, 密碼以及預計登入時間

新聞:

[慶賀]恭喜張清貿醫師升任北榮傳醫科主治醫師-20170201

作者 主題: SP System Software Source  (閱讀 7826 次)

admin

  • 管理員
  • Hero Member
  • *****
  • 文章: 1751
    • 檢視個人資料
« 最後編輯時間: 五月 01, 2009, 10:12:54 am 由 admin »
已記錄

admin

  • 管理員
  • Hero Member
  • *****
  • 文章: 1751
    • 檢視個人資料
回覆: SP System Software Source
« 回覆文章 #1 於: 四月 28, 2009, 11:48:35 am »
C# 範例一: PassOne sicboot.asm 讀入 一個SIC的原始程式, 再傾印到螢幕

程式碼: [Select]
using System;
using System.IO;

namespace PassOne
{
    class Program
    {
        static void Main(string[] args)
        {
            string filename = args[0];
            int  nlineNo = 0;
            string[] lines = new string[1000];

            using (StreamReader sr = new StreamReader(filename))
            {
                while (sr.Peek() >= 0)
                {
                    lines[nlineNo++]=sr.ReadLine();
                }
            }
            for (int i = 0; i < nlineNo; i++)
            {
                if(lines[i][0] != '.')
                    Console.WriteLine(lines[i]);
            }
        }
    }
}
[/size]
« 最後編輯時間: 五月 01, 2009, 05:30:57 pm 由 admin »
已記錄

admin

  • 管理員
  • Hero Member
  • *****
  • 文章: 1751
    • 檢視個人資料
回覆: SP System Software Source
« 回覆文章 #2 於: 四月 28, 2009, 12:06:31 pm »
範例程式二, 將每一行分成Label, Opcode, Oprand

程式碼: [Select]
using System;
using System.IO;

namespace PassOne
{
    class Program
    {
        static void Main(string[] args)
        {
            string filename = args[0];
            int  nlineNo = 0;
            string[] lines = new string[1000];
            string Line, Label, Opcode, Oprand;

            using (StreamReader sr = new StreamReader(filename))
            {
                //read first input line
                Line = sr.ReadLine();
                Label = Line.Substring(0, 8).Trim(); ;
                Opcode = Line.Substring(9, 8).Trim(); ;
                if (Line.Length >= 36)
                    Oprand = Line.Substring(17, 16).Trim();
                else
                    Oprand = Line.Substring(17).Trim();
                Console.Write("Label="); Console.Write(Label);
                Console.Write(" Opcode="); Console.Write(Opcode);
                Console.Write(" Oprand="); Console.Write(Oprand);
            }         
        }
    }
}
已記錄
 

SimplePortal Classic 2.0.5