freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

[計算機硬件及網絡]微機原理與接口技術匯編語言程序設計-資料下載頁

2025-01-19 09:18本頁面
  

【正文】 MOV AX, [BP+4] 。取第二個數 ADD AX, [BP+6] 。取第一個數和第二個數相加 POP BP RET 4 。SP+4,丟掉堆棧無用參數 Addition ENDP CODE ENDS END START 例:編寫一個程序找出內存 N個連續(xù)的字節(jié) (字或者雙字 )空間中存放的無符號數的最大值。 程序清單: STACK SEGMENT STACK 39。STACK39。 STAK DW 50 DUP(?) 。堆棧段大小是 50個字 STACK ENDS DATA SEGMENT ARRAY DB 3,12,45,21,97,56,8 。存放 7個數字 MAXNUM DB ? 。存放最大數 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK MAIN PROC START:MOV AX,DATA MOV DS,AX 。數據段寄存器賦值 XOR AX,AX 匯編程序設計舉例 MOV BX,OFFSET ARRAY 。取數組的偏移量送 BX MOV CX,6 。比較的次數送 CX MOV AL,[BX] 。取第一個數 LABLE:INC BX 。偏移量加 1,指向下一個數 CMP AL,[BX] 。比較 AL和第 N+1個數 JNB NEXT 。不低于 則轉入 NEXT MOV AL,[BX] 。否則將大數送 AL NEXT:LOOP LABLE 。繼續(xù)下一次比較 MOV MAXNUM,AL 。最大數送 MAXNUM單元 MOV BX,AX CALL Display 。調用顯示子程序 MOV AH,4CH INT 21H MAIN ENDP Display PROC 。顯示子程序 ??? Display ENDP CODE ENDS END START 例: 編寫一個程序使內存 5個連續(xù)的字節(jié) (字或者雙字 )空間中存放的無符號數按序排列存放。 分析:冒泡法,將低地址字節(jié)空間中的數和其他 4個字節(jié)空間的數分別 4次兩兩比較,大則交換兩個字節(jié)空間的數據,否則不交換;經過 1趟比較之后最大的數交換至高字節(jié)地址空間。對于 5個數據,只要經過四趟比較數據就會按序排列存放。 利用 BX寄存器存放比較的趟數,每次比較完 1趟后 BX的值減 1,當 BX的值為 0時,比較結束。 程序清單 : STACK SEGMENT STACK 39。STACK39。 STAK DW 50 DUP(?) 。堆棧段大小是 50個字 STACK ENDS DATA SEGMENT ARRAY DB 39。Z39。,39。P39。,39。S39。,39。E39。,39。M39。 。存放 5個數 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK 。綁定各個段與段寄存器 START:MOV AX,DATA MOV DS,AX MOV BX,4 。送大循環(huán)的次數,比較的趟數 SORT:MOV CX,BX 。送小循環(huán)的次數,每趟比較的次數 MOV SI,OFFSET ARRAY 。取數組的偏移量送 SI COMP:MOV AL,[SI] 。送數組中第 n個數 CMP AL,[SI+1] 。比較數組中第 n個數和 n+1個數 JNA LABLE XCHG AL,[SI+1] MOV [SI],AL 。大于則交換兩個數 LABLE:INC SI 。指向下一個數 LOOP COMP 。繼續(xù)下一次比較 DEC BX 。完成了一趟比較,大循環(huán)減 1 JNZ SORT 。未完成排序,則轉入下一趟 MOV CX,5 。循環(huán)顯示 5個排序的數 MOV SI,OFFSET ARRAY DIS:MOV DL,[SI] MOV AH,02 INT 33 INC SI LOOP DIS MOV AH,4Ch INT 33 。結束程序 CODE ENDS END START 例:編寫一個子程序從鍵盤輸入一個有符號十進制數,輸入數據時,負數用“-”引導,正數 直接輸入 或用“+”引導。 分析: ① 首先判斷輸入為正或負數,并用一個寄存器記錄 ② 接收鍵盤輸入的 0~ 9數字的 ASCII碼,然后減去 30H轉換為對應的二進制數 ③ 將前面輸入的數值乘 10,并與剛輸入的數字相加得到新的數值,并保存至指定寄存器 ④ 重復②、③步,直到輸入一個非數字字符結束 ⑤ 負數進行求補,轉換成補碼;否則直接保存數值 子程序名: Read 入口參數:無 出口參數: AX 注意:本例采用 16位寄存器表達數據,所以只能輸入+ 32767~- 32768間的數值。 READ PROC PUSH BX 。保護寄存器 PUSH CX PUSH DX XOR BX,BX 。BX保存結果 XOR CX,CX 。CX為正負標志, 0為正,- 1為負 MOV AH,1 。輸入一個字符 INT 21H CMP AL,39。+39。 。是“+”,繼續(xù)輸入字符 JZ READ1 CMP AL,39。39。 。是“-”,設置- 1標志 JNZ READ2 。非“+”和“-”,轉 READ2 MOV CX,1 READ1:MOV AH,01 。繼續(xù)輸入字符 INT 21H READ2:CMP AL,39。039。 。不是 0~ 9之間的字符,則輸入數據結束 JB READ3 CMP AL,39。939。 JA READ3 SUB AL,30H 。是 0~ 9之間的字符,則轉換為二進制數 SHL BX,1 MOV DX,BX SHL BX,1 SHL BX,1 ADD BX,DX 。利用移位指令,實現數值乘 10 MOV AH,0 ADD BX,AX 。與新輸入數值相加 JMP READ1 。繼續(xù)輸入字符 READ3:CMP CX,0 JZ READ4 NEG BX 。是負數,進行求補 READ4:MOV AX,BX 。設置出口參數 POP DX POP CX POP BX ?;謴图拇嫫? RET 。子程序返回 READ ENDP 編寫主程序,調用 READ子程序輸入 5個數據,找到最大的一個將其存放在字變量 MAXNUM中。 STACK SEGMENT STACK 39。STACK39。 STAK DW 256 DUP(?) 。堆棧段大小是 256個字 STACK ENDS DATA SEGMENT ARRAY DW 5 DUP(?) 。預留 5個數據存儲空間 MAXNUM DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK 。綁定各個段與段寄存器 MAIN PROC START:MOV AX,DATA MOV DS,AX MOV CX,5 。調用子程序的循環(huán)次數 MOV BX,OFFSET ARRAY AGAIN:CALL READ 。調用子程序輸入數據 MOV [BX],AX 。出口參數送緩沖區(qū) ADD BX,2 。BX指向緩沖區(qū)下一個字單元 LOOP AGAIN MOV BX,OFFSET ARRAY 。取緩沖區(qū)的偏移量送 BX MOV CX,04 。比較的次數送 CX MOV AX,[BX] 。取第一個數 LABLE:INC BX INC BX 。BX指向緩沖區(qū)下一個字單元 CMP AX,[BX] 。比較 AL和第 N+1個數 JNL NEXT 。不小于 則轉入 NEXT MOV AX,[BX] 。否則將大數送 AX NEXT:LOOP LABLE 。繼續(xù)下一次比較 MOV MAXNUM,AX 。最大數送 MAXNUM字單元 MOV AH,4CH INT 21H MAIN ENDP READ PROC 。輸入子程序 ??? READ ENDP CODE ENDS END START
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1