微型计算机10053拆装,微型计算机的程序设计概要1.ppt
微型計算機的程序設計概要1
第六章 微型計算機的程序設計 順序結構程序 分支結構程序 循環結構程序 子程序結構 第六章 小結、思考題 重點: 程序設計方法 順序結構程序 分支結構程序 循環結構程序 子程序結構 6.1 程序設計步驟 1.分析問題 2.建立數學模型 3.確定算法 4.繪制程序流程圖 5.內存分配 6.編制程序 7.程序調試 6-2 簡單程序(順序結構程序) 例6-1:用數據運算指令,對兩個16位數做加法運算。這兩個數從地址10050H開始連續存放,低位在小地址的一端,結果放在這兩個數之后。 分析:(1)兩個16位數相加,在用加法指令時,需要考慮低8位和低8位相加后產生的進位問題。 (2)可用AX直接做字操作(16位),但在低位加操作后,會影響進位位CF,所以要用進位加法指令ADC 內存分配圖 內存地址 內容 內存地址 內容 10050H 被加數低8位 10053H 加數高8位 10051H 被加數高8位 10054H 和的低8位 10052H 加數低8位 10055H 和的高8位 程序段為: MOV AX, 1000H MOV DS, AX ;注意,不能將立即數直接給DS MOV SI, 50H MOV DI, 52H MOV BX, 54H CLC XOR AX, AX MOV AX, [SI] ADC AX, [SI] MOV [BX], AX HLT ;暫停 例6.2 將內存(10050)單元的內容拆成兩段,每段4位,并將它們分別 存入內存(10051)和(10052)單元。即(10050)單元中的低4位放入(10051)單元中的低4位, 而(10050)單元中的高4位放入(10052)單元中的低4位。 程序段如下:(見書本p140) MOV AX, 1000H MOV DS, AX ;給段寄存器DS賦值 MOV SI, 50H MOV AL,[SI] ;把物理地址為10000H+0050H=10050H ; 中的存儲內容給AL AND AL, 0FH ;把AL中的前4位清0,取得低4位值 MOV [SI+1], AL;把得到的低4位放到(10051H)單元 MOV AL, [SI] ;再取出需拆字節放到AL中 MOV CL, 4 SHR AL, CL ;邏輯右移4次,前4位補0; MOV [SI+2], AL ;放入(10052)單元 6-3、分枝結構程序 例6.3 求AX累加器和BX寄存器中兩個無符號數之差的絕對值,結果放在內存(2800)單元中。 分析:不知AX與BX中數的大小,故需先判斷誰大,然后用大的減小的才可求得絕對值, 其流程圖如圖6-5 相應程序段如下 (p141) CLC SUB AX,BX JC AA ;進位位為1,就轉移到AA MOV DI, 2800H MOV [DI], AX HLT AA: SUB BX, AX MOV DI, 2800H MOV [DI], BX HLT 例6.4 從外設71號中取一個數M,判斷其值是否在10和20之間,即10≤M<20.如果M≥20H,則送0FFH給外設73H;如果M<10,則送00H給外設73H; 如果10≤M<20,則送88H給外設73H. 分析:根據題意,我們可以看出這是一個需要兩次判斷M大小的問題。我們可以先判M是否大于10,再判M是否大于20。(2) 根據解決問題的思路,我們先畫出程序流程圖,如下圖所示。從圖6中程序流程圖來看,兩個分支都要“回歸”原程序。(3) 編制的程序如下:
總結
以上是生活随笔為你收集整理的微型计算机10053拆装,微型计算机的程序设计概要1.ppt的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 编程方法学12:枚举
- 下一篇: 编程方法学13:字符串处理