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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

王爽 汇编 实验10

發布時間:2025/3/20 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 王爽 汇编 实验10 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 顯示字符串

  第一次寫出來的代碼發現只能用作特定問題,如果其他程序調用子程序將會出錯.后面的題目也就無法完成.所以重新寫了一遍,進入后子程序中使用的寄存器全部入棧

1 assume cs:code 2 3 data segment 4 db 'Welcometomasm!',0 5 data ends 6 7 stack segment 8 db 16 dup (0) 9 stack ends 10 11 code segment 12 start: 13 mov dh,8 14 mov dl,3 ;第八行第三列 15 16 mov cl,2 ;顏色 17 18 mov ax,data 19 mov ds,ax ;ds指向數據段 20 21 mov si,0 22 call show_str 23 24 all: 25 jmp short all ;一直循環 26 27 mov ax,4c00h 28 int 21h 29 30 show_str: 31 push dx 32 push ax 33 push cx ;子程序開始前入棧 34 push si 35 36 mov ax,0b800h 37 mov es,ax ;es指向現存的起始地址 38 39 mov al,160 ;一行可現實80個字符,每個字符2字節.160字節 40 dec dh ;行-1 41 mul dh ;乘,結果在ax中 42 mov bx,ax 43 ;(n行-1)*160=n行開頭的偏移地址 44 45 mov al,2 ;一個字符占2列 46 dec dl ;列-1 47 mul dl 48 mov di,ax ;列的偏移地址 49 ;(n列-1)*2=當前列的偏移地址 50 51 ;顏色設置 52 mov ch,0 53 mov dx,cx 54 s: 55 mov cl,[si] ;ds:[si]指向字符串的首地址 56 mov ch,0 57 jcxz ok 58 mov ax,[si] 59 mov es:[bx+di],ax 60 mov es:[bx+di+1],dx 61 ;一個字母占兩個字節,一個ascii 62 add di,2 63 inc si 64 jmp short s 65 66 ok: 67 pop si 68 pop cx 69 pop ax 70 pop dx 71 ret 72 73 code ends 74 end start

?

  圖片顯示:

?3. 數值顯示

  

1 assume cs:code 2 data segment 3 dw 16 dup (0) 4 data ends 5 6 code segment 7 start: 8 mov bx,data ;指向數據段 9 mov ds,bx 10 11 mov si,0 12 mov ax,12345 13 call dtoc 14 15 mov dh,3 16 mov dl,3 17 mov cl,2 18 call show_str 19 20 ;一直循環 21 all: 22 jmp short all 23 24 mov ax,4c00h 25 int 21h 26 27 dtoc: 28 push ax 29 push cx 30 push bx 31 push si 32 push di ;備份 33 34 mov bx,10 35 mov di,0 ;記錄循環的次數 36 37 ;循環s用來 38 sd: 39 mov dx,0 40 div bx 41 add dx,30h 42 43 push dx ;用棧存儲然后出棧調整順序 44 inc di 45 mov cx,ax ;ax為商,商為0結束 46 47 jcxz okd 48 49 jmp short sd 50 okd: 51 52 mov cx,di 53 sd1: 54 pop ax 55 mov [si],al ;將值傳入 ds:[si] 56 inc si 57 loop sd1 58 59 pop di 60 pop si 61 pop bx 62 pop cx 63 pop ax 64 ret 65 66 ; 字符展示子程序 67 show_str: 68 push ax 69 push bx 70 push cx ;子程序開始前入棧 71 push di 72 push si 73 74 mov ax,0b800h 75 mov es,ax ;es指向顯存的起始地址 76 77 mov al,160 ;一行可現實80個字符,每個字符2字節.160字節 78 dec dh ;行-1 79 mul dh ;乘,結果在ax中 80 mov bx,ax 81 ;(n行-1)*160=n行開頭的偏移地址 82 83 mov al,2 ;一個字符占2列 84 dec dl ;列-1 85 mul dl 86 mov di,ax ;列的偏移地址 87 ;(n列-1)*2=當前列的偏移地址 88 89 ;顏色設置 90 mov ch,0 91 mov dx,cx 92 s_show: 93 mov cl,[si] ;ds:[si]指向字符串的首地址 94 mov ch,0 95 96 jcxz ok_show 97 98 mov ax,[si] 99 mov es:[bx+di],ax 100 mov es:[bx+di+1],dx ;顏色設置 101 ;一個字母占兩個字節,一個ascii 102 add di,2 103 inc si 104 jmp short s_show 105 106 ok_show: 107 pop si 108 pop di 109 pop cx 110 pop bx 111 pop ax ;出棧 112 ret 113 114 code ends 115 end start

轉載于:https://www.cnblogs.com/Triomphe/p/8545461.html

總結

以上是生活随笔為你收集整理的王爽 汇编 实验10的全部內容,希望文章能夠幫你解決所遇到的問題。

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