匯編語言及應(yīng)用程序設(shè)計(jì)_第1頁
匯編語言及應(yīng)用程序設(shè)計(jì)_第2頁
匯編語言及應(yīng)用程序設(shè)計(jì)_第3頁
匯編語言及應(yīng)用程序設(shè)計(jì)_第4頁
匯編語言及應(yīng)用程序設(shè)計(jì)_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

匯編語言及應(yīng)用程序設(shè)計(jì)第一頁,共六十二頁,2022年,8月28日

9.1偽指令

偽指令是對(duì)匯編過程起控制作用,但本身并沒有對(duì)應(yīng)的機(jī)器代碼的指令。一、匯編起始指令ORG

指令格式為:ORGnn

該指令的作用是指明后面的程序或數(shù)據(jù)塊的起始地址,它總是出現(xiàn)在每段源程序或數(shù)據(jù)塊的開始。式中,nn為16位地址,匯編時(shí)nn確定了此語句后面第一條指令或第一個(gè)數(shù)據(jù)的地址,此后的源程序或數(shù)據(jù)塊就依次連續(xù)存放在以后的地址內(nèi),直到遇到另一個(gè)ORG指令為止。第二頁,共六十二頁,2022年,8月28日例:ORG2000HMOVSP,#60HMOVR0,#2FHMOVR2,#0FFHORG偽指令說明其后面程序的目標(biāo)代碼在存儲(chǔ)器中存放的起始地址是2000H,即存儲(chǔ)器地址目標(biāo)程序

2000H7581602003H782F2005H7AFF注意:一般要求ORG定義空間地址由小到大,且地址不能重疊。第三頁,共六十二頁,2022年,8月28日

二、定義字節(jié)指令DB

指令格式:

<標(biāo)號(hào):>DB<項(xiàng)或項(xiàng)表>其中:項(xiàng)或項(xiàng)表是指一個(gè)字節(jié),數(shù)或字符串,或以引括起來的ASCII碼字符串(一個(gè)字符用ASCII

碼表示,就相當(dāng)于一個(gè)字節(jié))。功能:把項(xiàng)或項(xiàng)表的數(shù)值(字符則用它的ASCII碼)存入從標(biāo)號(hào)開始的連續(xù)單元中。第四頁,共六十二頁,2022年,8月28日例:ORG1000HSEG1:DB53H,74H,78H,‘1’,‘2’SEG2:DB23H,‘DAY’END則:(1000H)=53H

(1001H)=74H

(1002H)=78H

(1003H)=31H數(shù)字1的ASCII碼(1004H)=32H數(shù)字2的ASCII碼(1005H)=23H

(1006H)=34H

(1007H)=41H‘DAY’的ASCII碼(1008H)=59H

第五頁,共六十二頁,2022年,8月28日

三、定義字指令DW

指令格式:

<標(biāo)號(hào):>DW<項(xiàng)或項(xiàng)表>其中:

DW的基本含義與DB相同,但DB一般用于定

8位數(shù)據(jù)(一個(gè)字節(jié)),而DW則定義16位數(shù)據(jù),即一個(gè)字(規(guī)定為兩個(gè)字節(jié),即一個(gè)字為

16位二進(jìn)制數(shù))。注意:在執(zhí)行匯編程序時(shí),機(jī)器會(huì)自動(dòng)按高位字節(jié)在前,低位字節(jié)在后的格式排列(與程序中的地址規(guī)定一致),DW偽指令常用來建立地址表。第六頁,共六十二頁,2022年,8月28日四、預(yù)留存儲(chǔ)區(qū)DS

指令格式:

<標(biāo)號(hào):>DS<表達(dá)式>功能:由標(biāo)號(hào)指定單元開始,定義一個(gè)存儲(chǔ)區(qū),以備源程序使用,存儲(chǔ)區(qū)預(yù)留的存儲(chǔ)單元數(shù)由表達(dá)式的值決定。例如:ORG3C40HTEMP:DS10

即由3C40H地址開始保留連續(xù)的10個(gè)存儲(chǔ)單元的存儲(chǔ)區(qū)。

第七頁,共六十二頁,2022年,8月28日

五、標(biāo)號(hào)指令EQU

指令格式:

<標(biāo)號(hào):>EQUnn或表達(dá)式

功能:將語句操作數(shù)的值賦予本語句的標(biāo)號(hào),故又稱為等值指令。注意:由EQU等值的字符名稱必須先賦值后使用,且在同一程序中,用EQU偽指令對(duì)標(biāo)號(hào)賦值后,該標(biāo)號(hào)的值在整個(gè)程序中不能改變。

第八頁,共六十二頁,2022年,8月28日例:PA8155EQU8001H

即給標(biāo)號(hào)PA8155賦值為8001H。使用等值指令可給程序的編制、調(diào)試、修改帶來方便,如果在程序中要多次使用到某一地址,由

EQU指令將其賦值給一個(gè)字符名稱,一旦需要對(duì)其進(jìn)行變動(dòng),只要改變EQU命令后面的數(shù)字即可,而不需要對(duì)程序中涉及到該地址的所有指令逐句進(jìn)行修改。第九頁,共六十二頁,2022年,8月28日

六、源程序結(jié)束END

指令格式:

<標(biāo)號(hào):>END<表達(dá)式>

功能:是一個(gè)結(jié)束語句,告訴匯編程序段已結(jié)束注意:該語句必須放在整個(gè)程序(包括偽指令)之后,若END語句出現(xiàn)在代碼塊中間,則匯編語言將不匯編END后面的語句。

第十頁,共六十二頁,2022年,8月28日9.2匯編語言源程序的匯編過程自動(dòng)編排目標(biāo)程序中的指令存放地址把源程序翻譯成機(jī)器碼分析源程序語法,若出錯(cuò),給出錯(cuò)誤信息輸出目標(biāo)程序及源程序文件列表第十一頁,共六十二頁,2022年,8月28日

9.3MCS-51匯編語言使用程序舉例9.3.1簡(jiǎn)單程序設(shè)計(jì)9.3.2分支程序設(shè)計(jì)9.3.3運(yùn)算程序設(shè)計(jì)9.3.4循環(huán)程序設(shè)計(jì)9.3.5代碼轉(zhuǎn)換程序設(shè)計(jì)9.3.6邏輯操作程序設(shè)計(jì)9.3.7查表程序設(shè)計(jì)

第十二頁,共六十二頁,2022年,8月28日9.3.1簡(jiǎn)單程序設(shè)計(jì)

例1兩個(gè)無符號(hào)雙字節(jié)數(shù)相加。

設(shè)被加數(shù)存放于內(nèi)部RAM的40H(高位字節(jié)),41H(低位字節(jié)),加數(shù)存放于50H(高位字節(jié)),51H(低位字節(jié)),和數(shù)存入

40H和41H單元中。第十三頁,共六十二頁,2022年,8月28日程序如下:START:CLRC;將Cy清零

MOVR0,#41H;將被加數(shù)地址送數(shù)據(jù)指針R0MOVR1,#51H;將加數(shù)地址送數(shù)據(jù)指針R1AD1:MOVA,@R0;被加數(shù)低字節(jié)的內(nèi)容送入AADDA,@R1;兩個(gè)低字節(jié)相加

MOV@R0,A;低字節(jié)的和存入被加數(shù)低字

DECR0;指向被加數(shù)高位字節(jié)

DECR1;指向加數(shù)高位字節(jié)

MOVA,@R0;被加數(shù)高位字節(jié)送入AADDCA,@R1;兩個(gè)高位字節(jié)帶Cy相加

MOV@R0,A;高位字節(jié)的和送被加數(shù)高位字

RET第十四頁,共六十二頁,2022年,8月28日

例2將兩個(gè)半字節(jié)數(shù)合并成一個(gè)一字節(jié)數(shù)。設(shè)內(nèi)部RAM40H#,41H單元中分別存放著8位二進(jìn)制數(shù),要求取出兩個(gè)單元中的低半字節(jié),并成一個(gè)字節(jié)后,存入50H單元中。第十五頁,共六十二頁,2022年,8月28日程序如下:START:MOVR1,#40H;設(shè)置R1為數(shù)據(jù)指針MOVA,@R1;取出第一個(gè)單元中的內(nèi)容ANLA,#0FH;取第一個(gè)數(shù)的低半字節(jié)SWAPA ;移至高半字節(jié)INCR1;修改數(shù)據(jù)指針XCHA,@R1;取第二個(gè)單元中的內(nèi)容ANLA,#0FH;取第二個(gè)數(shù)的低半字節(jié)ORLA,@R1;拼字MOV50H,A;存放結(jié)果RET第十六頁,共六十二頁,2022年,8月28日9.3.2分支程序設(shè)計(jì)圖9.1分支結(jié)構(gòu)框圖(a)單分支流程;(b)多分支流程

第十七頁,共六十二頁,2022年,8月28日例3x,y均為8位二進(jìn)制數(shù),設(shè)x存入R0,y存入R1,求解:y=syn(x)圖9.2第十八頁,共六十二頁,2022年,8月28日程序如下:

START:CJNER0,#00H,SUL1;R0中的數(shù)與00比較不等轉(zhuǎn)移

MOVR1,#00H;相等,R1←0SJMPSUL2SUL1:JCNEG;兩數(shù)不等,若(R0)<0,轉(zhuǎn)向NEGMOVR1,#01H;(R0)>0,則R1←01HSJMPSUL2NEG:MOVR1,#0FFH;(R0)<0,則R1←0FFHSUL2:RET第十九頁,共六十二頁,2022年,8月28日例4比較兩個(gè)無符號(hào)數(shù)的大小。設(shè)外部RAM的存儲(chǔ)單元ST1和ST2中存放兩個(gè)不帶符號(hào)的二進(jìn)制數(shù),找出其中的大數(shù)存入外部RAM中的ST3單元中。

圖9.3第二十頁,共六十二頁,2022年,8月28日程序如下: ORG1000HST1 EQU2000HST2EQU2100HST3EQU2200HSTART:CLRC ;清零Cy MOVDPTR,#ST1;第一個(gè)數(shù)的指針MOVXA,@DPTR;取第一個(gè)數(shù)MOVR2,A;保存MOVDPTR,#ST2;第二個(gè)數(shù)的指針MOVXA,@DPTR;取第二個(gè)數(shù)CLRC第二十一頁,共六十二頁,2022年,8月28日SUBBA,R2;兩數(shù)比較JNCBIG2;若第二個(gè)數(shù)大,則轉(zhuǎn)XCHA,R2;第一個(gè)數(shù)大BIG1:MOVDPTR,#ST3MOVX@DPTR,A;存大數(shù)RETBIG2:MOVXA,@DPTR;第二個(gè)數(shù)大SJMPBIG1RET第二十二頁,共六十二頁,2022年,8月28日9.3.3運(yùn)算程序設(shè)計(jì)一、加、減法程序例5將40H開始存放的10個(gè)字節(jié)的數(shù)與50H開始存放的10個(gè)字節(jié)的數(shù)相減(假設(shè)被減數(shù)大于減數(shù))。設(shè)被減數(shù)指針為R0,減數(shù)指針為R1,差數(shù)放回被減數(shù)單元,R5存放字節(jié)個(gè)數(shù),則程序如下:

第二十三頁,共六十二頁,2022年,8月28日SUB:MOVR0,#40H MOVR1,#50H MOVR5,#10 CLRCSUB1:MOVA,@R0 SUBBA,@R1 MOV@R0,A INCR0 INCR1 DJNZR5,SUB1 RET第二十四頁,共六十二頁,2022年,8月28日二、乘法運(yùn)算程序

在計(jì)算機(jī)中,常將乘法采用移位和加法來實(shí)現(xiàn)。例6將(R2R3)和(R6R7)中雙字節(jié)無符號(hào)數(shù)相乘,結(jié)果存入R4R5R6R7。此乘法可以采用部分積右移的方法來實(shí)現(xiàn),其程序框圖如圖4.6所示,程序如下:

NMUL:MOVR4,#0;初始化 MOVR5,#0 CLRC MOVR0,#16第二十五頁,共六十二頁,2022年,8月28日NMUL1:MOVA,R4;CyR4R5R6R7右移一位 RRCA MOVR4,A MOVA,R5 RRCA MOVR5,A MOVA,R6 RRCA MOVR6,A MOVA,R7 RRC MOVR7,A JNCNMUL2;C為移出乘數(shù)的最低位 MOVA,R5;(R4R5)+(R6F7)→(R4R5)

第二十六頁,共六十二頁,2022年,8月28日ADDA,R3MOVR5,AMOVA,R4ADDCA,R2MOVR4,ANMUL2:DJNZR0,NMUL1;循環(huán)16位MOVA,R4;最后結(jié)果再移一位RRCAMOVR4,AMOVA,R5RRCAMOVR5,AMOVA,R6第二十七頁,共六十二頁,2022年,8月28日RRCAMOVR6,AMOVA,R7RRCAMOVR7,ARET第二十八頁,共六十二頁,2022年,8月28日?qǐng)D9.4NMUL程序框圖第二十九頁,共六十二頁,2022年,8月28日

三、除法運(yùn)算程序除法是乘法的逆運(yùn)算,用移位、相減的方法來完成。首先比較被除數(shù)的高位字與除數(shù),如被除數(shù)高位大于除數(shù),則商為1,并從被除數(shù)中減去除數(shù),形成一個(gè)部分余數(shù);否則商位為0,不執(zhí)行減法。然后把新的部分余數(shù)左移一位,并與除數(shù)再次進(jìn)行比較。循環(huán)此步驟,直到被除數(shù)的所有位都處理完為止,一般商的字長(zhǎng)為n,則需循環(huán)n次。一般計(jì)算機(jī)中,被除數(shù)均為雙倍位,即如果除數(shù)和商為雙字節(jié),則被除數(shù)為四字節(jié)。如果在除法中發(fā)生商大于規(guī)定字節(jié),稱為溢出。在進(jìn)行除法前,應(yīng)該檢查是否會(huì)產(chǎn)生溢出。一般可在進(jìn)行除法前,先比較被除數(shù)的高位與除數(shù),如被除數(shù)高位大于除數(shù),則溢出,置溢出標(biāo)志,不執(zhí)行除法。第三十頁,共六十二頁,2022年,8月28日?qǐng)D9.5除法程序的流程第三十一頁,共六十二頁,2022年,8月28日

例7將(R4R5R6R7)除以(R2R3),商放在(R6R7)中,余數(shù)放在(R4R5)中。NDIV:MOVA,R5;判商是否產(chǎn)生溢出 CLRC SUBBA,R3 MOVA,R4 SUBBA,R2 JNCNDIV1;溢出,轉(zhuǎn)溢出處理 MOVB,#16;無溢出,執(zhí)行除法第三十二頁,共六十二頁,2022年,8月28日NDIV2:CLRC;被除數(shù)左移一位,低位送0MOVA,R7RLCAMOVR7,AMOVA,R6RLCAMOVR6,AMOVA,R5RLCAMOVR5,AXCHA,R4RLCAXCHA,R4第三十三頁,共六十二頁,2022年,8月28日MOVF0,C;保護(hù)移出的最高位CLRCSUBBA,R3;部分余數(shù)與除數(shù)比較MOVR1,AMOVA,R4SUBBA,R2JBF0,NDIV3;移出的高位為1,肯定夠減JCNDIV4;否則,(Cy)=0才夠減NDIV3:MOVR4,A;回送減法結(jié)果MOVA,R1MOVR5,AINCR7;商上1第三十四頁,共六十二頁,2022年,8月28日NDIV4:DJNZB,NDIV2;循環(huán)次數(shù)減1,若不為零則循環(huán)CLRF0;正常執(zhí)行無溢出F0=0RETNDIV1:SETBF0;溢出F0=1RET第三十五頁,共六十二頁,2022年,8月28日9.3.4循環(huán)程序設(shè)計(jì)一、單重循環(huán)

圖9.6第三十六頁,共六十二頁,2022年,8月28日循環(huán)程序一般由四個(gè)主要部分組成:(1)初始化部分:為循環(huán)程序做準(zhǔn)備,如規(guī)定循環(huán)次數(shù)、給各變量和地址指針預(yù)置初值。(2)處理部分:為反復(fù)執(zhí)行的程序段,是循環(huán)程序的實(shí)體,也是循環(huán)程序的主體。(3)循環(huán)控制部分:這部分的作用是修改循環(huán)變量和控制變量,并判斷循環(huán)是否結(jié)束,直到符合結(jié)束條件時(shí),跳出循環(huán)為止。(4)結(jié)束部分:這部分主要是對(duì)循環(huán)程序的結(jié)果進(jìn)行分析、處理和存放。第三十七頁,共六十二頁,2022年,8月28日

例8設(shè)在內(nèi)部RAM的BLOCK單元開始處有長(zhǎng)度為L(zhǎng)EN個(gè)的無符號(hào)數(shù)據(jù)塊,試編一個(gè)求和程序,并將和存入內(nèi)部RAM的SUM單元(設(shè)和不超過8位)。BLOCKEQU20HLENEQU30HSUMEQU40HSTART:CLRA;清累加器AMOVR2,#LEN;數(shù)據(jù)塊長(zhǎng)度送R2MOVR1,#BLOCK;數(shù)據(jù)塊首址送R1LOOP:ADDA,@R1;循環(huán)加法INCR1;修改地址指針DJNZR2,LOOP;修改計(jì)數(shù)器并判斷MOVSUM,A;存和RET第三十八頁,共六十二頁,2022年,8月28日

二、多重循環(huán)

多重循環(huán)程序,即在一個(gè)循環(huán)體中又包含了其它的循環(huán)程序,使用多重循環(huán)時(shí),必須注意:(1)循環(huán)嵌套,必須層次分明,不允許產(chǎn)生內(nèi)外層循環(huán)交叉。(2)外循環(huán)可以一層層向內(nèi)循環(huán)進(jìn)入,結(jié)束時(shí)由里往外一層層退出。(3)內(nèi)循環(huán)可以直接轉(zhuǎn)入外循環(huán),實(shí)現(xiàn)一個(gè)循環(huán)由多個(gè)條件控制的循環(huán)結(jié)構(gòu)方式。

第三十九頁,共六十二頁,2022年,8月28日

例9在外部RAM中,BLOCK開始的單元中有一無符號(hào)數(shù)據(jù)塊,其個(gè)數(shù)為L(zhǎng)EN個(gè)字節(jié)。試將這些無符號(hào)數(shù)按遞減次序重新排列,并存入原存儲(chǔ)區(qū)。

ORG1000HSTART:MOVDPTR,#BLOCK;置地址指針MOVP2,DPH;P2作地址指針高字節(jié)MOVR7,#LEN;置外循環(huán)計(jì)數(shù)初值DECR7;比較與交換n-1次

第四十頁,共六十二頁,2022年,8月28日LOOP0:CLRF0;交換標(biāo)志清0MOVR0,DPL;MOVR1,DPL;置相鄰兩數(shù)地址指針低字節(jié)INCR1MOVR6,R7;置內(nèi)循環(huán)計(jì)數(shù)器初值LOOP1:MOVXA,@R0;取數(shù)MOVB,A;暫存MOVXA,@R1;取下一個(gè)數(shù)CJNEA,B,NEXT;相鄰兩數(shù)比較,不等轉(zhuǎn)SJMPNOCHA;相等不交換

第四十一頁,共六十二頁,2022年,8月28日NEXT:JCNOCHA;Cy=1,則前者大于后者,不必交換SETBF0;否則,置交換標(biāo)志MOVX@R0,A;XCHA,B;兩數(shù)交換,大者在前,小者在后MOVX@R1,A;NOCHA:INCR0INCR1;修改指針DJNZR6,LOOP1;內(nèi)循環(huán)未完,則繼續(xù)JNBF0,EXIT;若從未交換,則結(jié)束DJNZR7,LOOP0;外循環(huán)未完,則繼續(xù)EXIT:RET第四十二頁,共六十二頁,2022年,8月28日?qǐng)D9.7第四十三頁,共六十二頁,2022年,8月28日9.3.5代碼轉(zhuǎn)換程序設(shè)計(jì)例104位二進(jìn)制數(shù)轉(zhuǎn)化為ASCII代碼分析:從ASCII編碼表可知,若4位二進(jìn)制數(shù)小于10,則此二進(jìn)制數(shù)加上30H即變成相應(yīng)的ASCII碼;若大于10(包括等于10),則應(yīng)加37H方可。入口:轉(zhuǎn)換前4位二進(jìn)制數(shù)存R2出口:轉(zhuǎn)換后的ASCII碼存R2第四十四頁,共六十二頁,2022年,8月28日源程序如下:

ORG2000HASCB1:MOVA,R2;ANLA,#0FH;取出四位二進(jìn)制數(shù)

PUSHA;壓入堆棧

CLRCSUBBA,#0AH;POPA;彈回A中

JCLOOP;該數(shù)小于10去LOOPADDA,#07H;否則加07HLOOP:ADDA,#30H;加30HMOVR2,A;轉(zhuǎn)換之ASCII碼送R2中

RET;返回主程序第四十五頁,共六十二頁,2022年,8月28日

例11設(shè)4位BCD碼依次存放在內(nèi)存RAM中40H~43H單元的低4位,高4位都為0,要求將其轉(zhuǎn)換為二進(jìn)制數(shù),結(jié)果存入R2R3中。分析:一個(gè)十進(jìn)制數(shù)可表示為:Dn×10n+Dn-1×10n-1+…+D0×100=(…((Dn×10+Dn-1)×10+Dn-2)×10+…)+D0當(dāng)n=3時(shí),上式可表示為:((D3×10+D2)×10+D1)×10+D0

第四十六頁,共六十二頁,2022年,8月28日BCDHEX:MOVR0,#40H;R0指向最高位地址MOVR1,#03;計(jì)數(shù)值送R1MOVR2,#0;存放結(jié)果的高位清零MOVA,@R0MOVR3,ALOOP:MOVA,R3MOVB,#10MULABMOVR3,A;(R3)×10的低8位送R3MOVA,BXCHA,R2;(R3)×10的高8位暫存R2MOVB,#10第四十七頁,共六十二頁,2022年,8月28日MULABADDA,R2MOVR2,A;R2×10+(R3×10)高8位送R2INCR0;取下一個(gè)BCD數(shù)MOVA,R3ADDA,@R0MOVR3,AMOVA,R2ADDCA,#0;加低字節(jié)來的進(jìn)位MOVR2,ADJNZR1,LOOPRET第四十八頁,共六十二頁,2022年,8月28日9.3.6邏輯操作程序設(shè)計(jì)一.邏輯“與”函數(shù)的程序模擬例12:某控制用的計(jì)算機(jī)在執(zhí)行初始化程序后,需要接收到:(1)準(zhǔn)備就緒信號(hào)為邏輯“1”;(2)主回路工作正常信號(hào)為邏輯“1”;(3)啟動(dòng)開關(guān)閉信號(hào)為邏輯“1”;方可執(zhí)行主程序,否則進(jìn)行循環(huán)檢測(cè),等待條件的滿足。第四十九頁,共六十二頁,2022年,8月28日設(shè)該三個(gè)信號(hào)由P1口的P1.2、P1.4、P1.6位輸入,分別稱作D2、D4、D6,則當(dāng)D2=D4=D6=1時(shí),邏輯函數(shù)f=D2.D4.D6=1,方執(zhí)行主程序,否則踏步等待。實(shí)現(xiàn)這一要求的流程如圖9.8所示:圖9.8邏輯“與”模擬流程圖第五十頁,共六十二頁,2022年,8月28日“與”函數(shù)的模擬程序片斷如下:

AND1:MOVA,P1;取狀態(tài)字:D7D0ANLA,#54H;送屏蔽字:01010100CJNEA,#54H,AND1;比較跳轉(zhuǎn),若f=1,

執(zhí)行主程序

MAIN否則f=0,循環(huán)檢測(cè)第五十一頁,共六十二頁,2022年,8月28日二.邏輯“或”函數(shù)的程序模擬例13:在報(bào)警程序中,只要主電路工作異常,或者過壓,或者過流,或者過載,都應(yīng)當(dāng)及時(shí)發(fā)出聲光報(bào)警信號(hào)。

設(shè)過壓、過流、過載信號(hào)分別由P1口的P1.0、P1.3、P1.6輸入分別稱作D0、D3、D6,則當(dāng)D0=D3=D6=0時(shí),邏輯函數(shù)f=D0+D3+D6=0,連續(xù)循環(huán)檢測(cè),否則發(fā)出報(bào)警信號(hào)。第五十二頁,共六十二頁,2022年,8月28日“或”函數(shù)f=D0+D3+D6的模擬程序片斷如下:

OR10:MOVA,P1;取狀態(tài)字:D7D0ANLA,#49H;送屏蔽字:01001001JZA,OR10;比較跳轉(zhuǎn),若f=1,

發(fā)出報(bào)警信號(hào)

DONE:否則f=0,循環(huán)檢測(cè)第五十三頁,共六十二頁,2022年,8月28日三.任意邏輯函數(shù)的程序模擬步驟:先把給定邏輯函數(shù)化為最小化“與-或”表達(dá)式然后畫出實(shí)現(xiàn)該函數(shù)程序模擬的流程圖編寫模擬程序第五十四頁,共六十二頁,2022年,8月28日例14求其模擬程序。設(shè)變量均由P1口輸入,連接如下:將最小化F2最小化為:以原變量化簡(jiǎn):以反變量化簡(jiǎn):

第五十五頁,共六十二頁,2022年,8月28日?qǐng)D9.9F2函數(shù)程序模擬流程圖F2函數(shù)程序模擬流程圖如圖9.9所示:第五十六頁,共六十二頁,2022年,8月28日編寫源程序片斷如下:以原變量編程:F2MOVA,P1;取狀態(tài)字

ANLA,#09H;送屏蔽字

XRLA,#08H;比較

JZBRAN1;F2=1去BRAN1MOVA,P1;

ANL

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論