我正在研究8051汇编程序,我想知道一个命令,它可以帮助我比较两个端口位并查找它们是否相等,所以我搜索它并发现CJNE可能有用并尝试过把它放在一个程序中如下...我不确定我是否正在走正确的道路可能一个Xnor命令更好但我找不到它,我无法测试它出于某种原因。
/etc/mysql/conf.d
如果我想知道一个端口位是大于还是小于其他位,我可以使用ANL命令吗?
答案 0 :(得分:1)
不是8051的专家,但是在比较之后,如果它等于(分支EQ或NE)则设置零标志,如果它更大则设置进位标志(CS或CC用于设置或清除) )。在CJNE之后(比较并跳转,如果不相等),你可以用JC [进位组的目的地 - 即>]检查进位标志。无需进行第二次比较 - 标志仍将从第一次开始设置。
CJNE R0,#00H,NOTEQUAL
; equal code goes here, then branch out
NOTEQUAL:
JC GREATER
; less than code goes here, then branch out
GREATER:
; greater code goes here
JNC是没有设置进位标志的指令 - 即它已经小于或等于但是你已经被淘汰了相等所以它会小于。
答案 1 :(得分:0)
这是一种做法。它绝不是循环或代码有效,但它符合您的要求。
假设您想要比较P1.0和P2.0是否与以下结果相同。 (P3.0,P3.1和P3.2是结果指标)
P1.0 = P2.0,设置P3.0否则清除
P1.0> P2.0,设置P3.1否则清除
P1.0 = P2.0 = 0,设置P3.2否则清除
create_table "order_details", force: true do |t|
t.integer "order_id"
t.integer "product_id"
t.integer "quantity"
t.integer "price"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "orders", force: true do |t|
t.integer "user_id"
t.date "date"
end
add_index "orders", ["user_id"], name: "index_orders_on_user_id", using: :btree
create_table "orders_products", id: false, force: true do |t|
t.integer "order_id"
t.integer "product_id"
end
create_table "products", force: true do |t|
t.string "product_name"
t.integer "product_price"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.boolean "available_status"
t.string "product_type"
end