日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

8086汇编-实验10-字符打印程序

發布時間:2024/4/18 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 8086汇编-实验10-字符打印程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

效果如圖:

assume cs:codeparameters_stack segment ;程序斷點參數傳遞db 48 dup(0) parameters_stack endsraw_stack segment ;程序斷點保存db 48 dup(0) raw_stack endsalpha segmentdb 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' ;0~25db 'abcdefghijklmnopqrstuvwxyz' ;26~51db 'HI, WELCOME TO MASM! ' ;52~77db 'I AM Cncdre FROM CHINA. ' ;78~103db 'HOW ARE YOU? ' ;104~129 alpha endscode segmentMain:;參數傳遞mov ax,parameters_stackmov ss,axmov sp,32mov ax,26push ax ;字符串長度mov ax,200hpush ax ;高地址為字符屬性,低地址為0mov ax,52push ax ;待顯示字符所在偏移地址mov ax,alphapush ax ;待顯示字符所在段mov ax,2000push ax ;顯存偏移地址mov ax,0b800hpush ax ;顯存起始段地址mov ss:[1],sp ;parameters_stack最高地址存儲此時棧頂位置;斷點保存mov ax,raw_stack ;call指令會自動壓入程序斷點地址(ip,短轉移)mov ss,axmov sp,32call Sub0mov ax,4c00hint 21hSub0:;小程序0_字符打印;參數壓棧順序:;字符串長度->高地址為字符屬性,低地址為0->待顯示字符所在偏移地址;->待顯示字符所在段->顯存偏移地址->顯存起始段地址;最后在ss:[1]存入sppush axpush espush dipush dspush sipush cxmov ss:[1],sp ;raw_stack最高地址存儲此時棧頂位置mov ax,parameters_stackmov ss,axmov sp,ss:[1] ;parameters_stack最高地址讀取棧頂位置pop axmov es,ax ;顯存起始段地址pop di ;顯存偏移地址pop ds ;待顯示字符所在段pop si ;待顯示字符所在偏移地址pop ax ;低地址為0,高地址為字符屬性pop cx ;字符串長度s:mov al,ds:[bx+si]mov es:[di],almov es:[di+1],ahinc siinc diinc diloop smov ax,raw_stackmov ss,axmov sp,ss:[1] ;raw_stack最高地址讀取棧頂位置pop cxpop sipop dspop dipop espop axret ;ret指令會自動彈出程序斷點地址賦給ip(短轉移)code ends end Main

總結

以上是生活随笔為你收集整理的8086汇编-实验10-字符打印程序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。