汇编中的子程序
??強(qiáng)烈推薦人工智能學(xué)習(xí)網(wǎng)站??? ? ? ? ?
子程序就是用來(lái)實(shí)現(xiàn)某一個(gè)功能的程序,和語(yǔ)言的一個(gè)func差不多,要利用call和ret來(lái)實(shí)現(xiàn),下面通過(guò)一段代碼來(lái)學(xué)習(xí)一下。
assume cs:codesgdata segmentdb "china",0 data endscodesg segementbegin:mov ax,datamov ds,axmov si,0call letterc ;跳轉(zhuǎn)到子程序mov ah,4chint 21h letterc:push cx ;子程序中要改變所以提前壓棧push silnext:sub ch,ch ;sub是減法指令mov cl,[si] ;[si]是對(duì)應(yīng)字符的值jxcz lret ;cx=0時(shí)則進(jìn)行轉(zhuǎn)移,字符串最后一個(gè)是0cmp cl,'a' jb plusi ;低于則轉(zhuǎn)移cmp cl,'z' ja plusi ;高于則轉(zhuǎn)移and byte ptr [si],11011111b ;小寫字母轉(zhuǎn)換為大寫字母plusi:inc si ;字符前移jmp short lnextlret:pop sipop cx ret codesg ends end begin?上述程序的功能是:將以0結(jié)尾的字符串中的小寫字母變成大寫字母。debug結(jié)果如下:
?
?
參考資料:<<匯編語(yǔ)言>>王爽
總結(jié)
- 上一篇: 汇编div指令
- 下一篇: 计算机网络:三层ISP结构