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

正文內(nèi)容

重點(diǎn)掌握:分支結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)子程序結(jié)構(gòu)-資料下載頁

2025-10-08 10:05本頁面

【導(dǎo)讀】綜合應(yīng)用第2章硬指令和第3章偽指令,第4章從程序結(jié)構(gòu)角度展開程序設(shè)計(jì),順序程序結(jié)構(gòu)是指完全按順序逐條執(zhí)行。分支程序根據(jù)條件是真或假?zèng)Q定執(zhí)行與否。判斷的條件是各種指令,如CMP、TEST等。轉(zhuǎn)移指令Jcc和JMP可以實(shí)現(xiàn)分支控制;還。條件成立跳轉(zhuǎn),否。執(zhí)行第1個(gè)分支語句體。就轉(zhuǎn)入相應(yīng)分支體執(zhí)行。多分支可以化解為雙分支。需要在數(shù)據(jù)段事先安排一個(gè)按順序排列的轉(zhuǎn)移。輸入的數(shù)字作為偏移量。因?yàn)橹挥?個(gè)字節(jié)16. 關(guān)鍵是要理解間接尋址方式JMP指令。地址表分支1地址分支2地址...;CF若是0,則DL←'0';若是1,則DL←'1'

  

【正文】 y again: call read 。調(diào)用子程序輸入一個(gè)數(shù)據(jù) mov [bx],ax 。將出口參數(shù)存放緩沖區(qū) inc bx inc bx call dpcrlf 。調(diào)用子程序,光標(biāo)回車換行以便輸入下一個(gè)數(shù)據(jù) loop again .exit 0 。輸入有符號(hào) 10進(jìn)制數(shù)的通用子程序 。出口參數(shù): AX=補(bǔ)碼表示的二進(jìn)制數(shù)值 。說明:負(fù)數(shù)用 “ - ” 引導(dǎo),正數(shù)用 “ + ” 引導(dǎo)或直接輸入;數(shù)據(jù)范圍是+ 32767~- 32768 read proc push bx push cx push dx xor bx,bx 。BX保存結(jié)果 xor cx,cx 。CX為正負(fù)標(biāo)志, 0為正,- 1為負(fù) mov ah,1 。輸入一個(gè)字符 int 21h cmp al,39。+39。 。是 “ + ” ,繼續(xù)輸入字符 jz read1 cmp al,39。39。 。是 “ - ” ,設(shè)置- 1標(biāo)志 jnz read2 。非 “ + ” 和 “ - ” ,轉(zhuǎn)read2 mov cx,1 read1: mov ah,1 。繼續(xù)輸入字符 int 21h read2: cmp al,39。0‘ 。不是 0~ 9之間的字符,則輸入數(shù)據(jù)結(jié)束 jb read3 cmp al,39。939。 ja read3 sub al,30h 。是 0~ 9之間的字符,則轉(zhuǎn)換為二進(jìn)制數(shù) 。利用移位指令,實(shí)現(xiàn)數(shù)值乘 10: BX←BX 10 shl bx,1 mov dx,bx shl bx,1 shl bx,1 add bx,dx 。bx內(nèi)容乘 10 mov ah,0 add bx,ax 。已輸入數(shù)值乘 10后,與新輸入數(shù)值相加 jmp read1 。繼續(xù)輸入字符 read3: cmp cx,0 jz read4 neg bx 。是負(fù)數(shù),進(jìn)行求補(bǔ) read4: mov ax,bx 。設(shè)置出口參數(shù) pop dx pop cx pop bx ret 。子程序返回 read endp 。使光標(biāo)回車換行的子程序 dpcrlf proc ... 。省略 dpcrlf endp end 64 例:顯示有符號(hào)十進(jìn)制數(shù) ? 子程序在屏幕上顯示一個(gè)有符號(hào)十進(jìn)制數(shù);子程序還包含將二進(jìn)制數(shù)轉(zhuǎn)換為 ASCII碼的過程 ? 顯示時(shí),負(fù)數(shù)用“-”引導(dǎo),正數(shù)直接輸出、沒有前導(dǎo)字符 ? 子程序的入口參數(shù)用共享變量傳遞,主程序調(diào)用該子程序顯示 10個(gè)數(shù)據(jù) .data count = 10 array dw 1234,1234,0,1,1,32767 dw 32768,5678,5678,9000 wtemp dw ? 。共享變量 .code .startup mov cx,count mov bx,offset array again: mov ax,[bx] mov wtemp,ax 。將入口參數(shù)存入共享變量 call write 。調(diào)用子程序顯示一個(gè)數(shù)據(jù) inc bx inc bx call dpcrlf 。便于顯示下一個(gè)數(shù)據(jù) loop again .exit 0 。顯示有符號(hào) 10進(jìn)制數(shù)的通用子程序 。入口參數(shù):共享變量 wtemp write proc push ax push bx push dx mov ax,wtemp 。取出顯示數(shù)據(jù) test ax,ax 。判斷零、正數(shù)或負(fù)數(shù) jnz write1 mov dl,39。039。 。是零,顯示 “ 0”后退出 mov ah,2 int 21h jmp write5 write1: jns write2 。是負(fù)數(shù),顯示 “ - ” mov bx,ax 。AX數(shù)據(jù)暫存于 BX mov dl,39。39。 mov ah,2 int 21h mov ax,bx neg ax 。數(shù)據(jù)求補(bǔ)(求絕對(duì)值) write2: mov bx,10 push bx 。10壓入堆棧,作為退出標(biāo)志 write3: cmp ax,0 。數(shù)據(jù)(余數(shù))為零 jz write4 。轉(zhuǎn)向顯示 sub dx,dx 。擴(kuò)展被除數(shù) div bx 。數(shù)據(jù)除以 10: 247。 10 add dl,30h 。余數(shù)( 0~ 9)轉(zhuǎn)換為 ASCII碼 push dx 。數(shù)據(jù)各位先低位后高位壓入堆棧 jmp write3 write4: pop dx 。數(shù)據(jù)各位先高位后低位彈出堆棧 cmp dl,10 。是結(jié)束標(biāo)志 10,則退出 je write5 mov ah,2 。進(jìn)行顯示 int 21h jmp write4 write5: pop dx pop bx pop ax ret 。子程序返回 write endp 。使光標(biāo)回車換行的子程序 dpcrlf proc ... 。省略 dpcrlf endp end 70 總 結(jié) 1. 掌握基本程序結(jié)構(gòu) ―― 順序結(jié)構(gòu) 、 分支結(jié)構(gòu) 、 循環(huán)結(jié)構(gòu) 、 子程序及其匯編語言程序設(shè)計(jì) 2. 熟悉常見程序設(shè)計(jì)問題: 多精度運(yùn)算 、 查表 ( 查代碼 、 特定值等 ) ASCII、 BCD及十六進(jìn)制數(shù)據(jù)間的代碼轉(zhuǎn)換 數(shù)據(jù)范圍判斷 ( 0~ A~ Z、 a~ z) 字母大小寫轉(zhuǎn)換;字符串傳送 、 比較等操作 求最小最大值 、 數(shù)據(jù)求和 、 統(tǒng)計(jì)字符個(gè)數(shù) 子程序的寄存器和共享變量傳遞參數(shù)
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1