From 6a47fad86f14e3181542aac671595f7b97ce4b0f Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Sun, 16 May 2021 21:48:24 -0700 Subject: . --- mu.md | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/mu.md b/mu.md index e3ed5418..ef948790 100644 --- a/mu.md +++ b/mu.md @@ -209,21 +209,6 @@ subtract-from var1, var2/reg var/reg <- subtract n subtract-from var, n -var1/reg1 <- and var2/reg2 -var/reg <- and var2 -and-with var1, var2/reg -var/reg <- and n -and-with var, n - -var1/reg1 <- or var2/reg2 -var/reg <- or var2 -or-with var1, var2/reg -var/reg <- or n -or-with var, n - -var1/reg1 <- not -not var - var1/reg1 <- xor var2/reg2 var/reg <- xor var2 xor-with var1, var2/reg @@ -254,6 +239,24 @@ shift-right-signed var, n var/reg <- multiply var2 ``` +Bitwise operations: +``` +var1/reg1 <- and var2/reg2 +var/reg <- and var2 +and-with var1, var2/reg +var/reg <- and n +and-with var, n + +var1/reg1 <- or var2/reg2 +var/reg <- or var2 +or-with var1, var2/reg +var/reg <- or n +or-with var, n + +var1/reg1 <- not +not var +``` + Any statement above that takes a variable in memory can be replaced with a dereference (`*`) of an address variable (of type `(addr ...)`) in a register. You can't dereference variables in memory. You have to load them into a -- cgit 1.4.1-2-gfad0