Question: I'm struggling to understand what this code does

```
ldi r20, 80
loop: asr r20
     brsh loop
      nop

```

What is this code doing and how many clock cycles does this code take to execute?

Answer: 
using static yournamespace.yourclassname;

then call the static class method without class name;

Example:

Class1.cs

```
namespace WindowsFormsApplication1
{
    class Utils
    {
        public static void Hello()
        {
            System.Diagnostics.Debug.WriteLine("Hello world!");
        }
    }
}

```

Form1.cs

```
using System.Windows.Forms;
using static WindowsFormsApplication1.Utils;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {

        public Form1()
        {
            InitializeComponent();
            Hello();    // <====== LOOK HERE
        }
    }
}

```
If you're looking to define a globally-scoped procedure then the short answer is no, you can't do this in c#. No global functions, procedures or objects.

In C# everything apart from namespaces and types (class, struct, enum, interface) must be defined inside a type. Static members (fields, properties and methods) can be used without an instance of the class, but only by referencing the type that owns them. Non-static members need an instance of the owning class.

This is fundamental to the syntax of the language. C# is neither C nor C++, where you *can* define global objects, functions and procedures.