8255第二種控制交通燈

2021-07-13 21:00:05 字數 1683 閱讀 1113

stack segment

db 64 dup(?)

stack ends

data segment

ioport    equ

0ff00h - 0280h

io8255a equ

ioport + 288h

io8255b equ

ioport + 289h

io8255c equ

ioport + 28ah

io8255d equ

ioport + 28bh

portc1 db

24h, 44h, 04h, 44h, 04h, 44h, 04h,

db81h, 82h, 80h, 82h, 80h, 82h, 80h

db 0ffh

data ends

code segment 

assume cs:code, ds:data

start:

mov ax, data

movds, ax

;設定資料段

mov ax,stack

;設定堆疊段為

mov ss,ax

;第二種迴圈顯示方法

mov sp,64

;儲存迴圈次數

movdx, io8255d

moval, 90h

;設定控制命令,10010000b

outdx, al

;將控制命令字寫入io8255d中

leadi, portc1

;把protcl的資料基址放入di

mov bx,3

;設定第二種顯示方法的迴圈初值

push bx

;在棧中儲存

re_on:

mov al, [di]

;取當前di指向位址中的內容

incdi

;di指標後移

cmpal, 0ffh

;判斷al中取到的值是否是0ffhjzx

;如果是,跳轉到x

movdx, io8255c

on:out

dx, al

;向io8255c中寫入顯示模式

call

delay

;延時顯示

jmpre_on

;跳轉到re_on繼續

exit:

mov ah, 4ch

int

21h;結束

delay proc near

;定義延時函式

movcx, 5300h

de1:

mov bx, 0fff0h

de0:

dec bx

jnzde0

loop de1

;做5300h*0fff0h次的迴圈

retdelay endp

x: pop bx

;取出在棧中儲存的迴圈次數

dec bx

;迴圈次數減一

push bx

;儲存迴圈次數

cmp bx,0

;判斷是否已經迴圈3次

jz exit

;已經迴圈3次則退出

lea di,portc1

;否則再次從portcl起始拿數值

jmp re_on

;跳轉re_on繼續

code ends

end start

Qt 第二種執行緒

流程 工程目錄 新增在這裡作為全域性 namespace ui class mywidget public qwidget endif mywidget h mythread.cpp include mythread.h include 待會用到sleep函式 include mythread my...

分頁的第二種方式

優點 1.十分簡潔 缺點 1.不能及時響應資料庫中變化 2.重複查詢較多,每獲取乙個屬性 總頁數 都要查詢資料庫 將某一頁的資料直接封裝在此類中,調乙個方法便可獲取資料。public class fengye 計算頁數 public int gettotalpages int count,int p...

ios第二種post請求

請求部分 nsurl url nsurl urlwithstring porturl gt ajax validate5 2.建立乙個網路請求,分別設定請求方法 請求引數 nsmutableurlrequest request nsmutableurlrequest requestwithurl u...