Generator和Async/Await
阿新 • • 發佈:2020-12-11
四、實驗結論
1.實驗任務1
1 assume cs:code, ds:data 2 3 data segment 4 db 'welcome to masm!' 5 db 2h,24h,71h 6 data ends 7 8 9 code segment 10 start: 11 mov ax,data 12 mov ds,ax 13 14 mov ax,0B872h 15 mov es,ax 16 17 mov cx,3 ;外層迴圈三次18 mov bx,0 ;記錄當前行數 19 20 s0: mov dx,cx ;記錄下迴圈次數,也是顏色下標 21 mov cx,16 ;每行顯示16個字元,記憶體迴圈16次 22 23 mov di,0 ;記錄記憶體迴圈的次數 24 mov si,0 ;記錄顯示的位置 25 26 s1: mov al,ds:[di] ;低位元組顯示文字 27 mov ah,ds:[bx+16] ;高位元組顯示顏色 28 mov es:[si],ax 29 add si,2;移動2個視訊記憶體地址 30 inc di ;移動到下一個字元 31 loop s1 32 33 mov cx,dx ;恢復外迴圈的cx值 34 mov ax,es+160 35 mov es,ax ;切換到下一行的位置 36 inc bx ;移動到下一個顏色 37 loop s0 38 39 mov ax,4c00h 40 int 21h 41 42 code ends 43 end start
2.實驗任務2
1 assume cs:code, ds:data 2 data segment 3 str db 'try', 0 4 data ends 5 6 code segment 7 start: 8 mov ax, data 9 mov ds, ax 10 11 mov si, offset str 12 mov al, 2 13 call printStr 14 15 mov ah, 4ch 16 int 21h 17 18 printStr: 19 push bx 20 push cx 21 push si 22 push di 23 24 mov bx, 0b800H 25 mov es, bx 26 mov di, 0 27 s: mov cl, [si] 28 mov ch, 0 29 jcxz over 30 mov ch, al 31 mov es:[di], cx 32 inc si 33 add di, 2 34 jmp s 35 36 over: pop di 37 pop si 38 pop cx 39 pop bx 40 ret 41 42 code ends 43 end start
將第3行的str db 'try', 0修改為str db 'another try', 0,結果如下:
將第12行的mov al, 2修改為mov al, 4,結果如下: