組合語言實驗9
阿新 • • 發佈:2018-12-08
一:
程式碼:
實驗結果:
二:
程式碼:
實驗結果:
三:
程式碼:
assume ds:data, cs:code data segment db 'welcome to masm!' db 2H,24H,71H ;字串屬性值 data ends stack segment dw 8 dup(0) stack ends code segment start: mov ax,data mov ds,ax ;字串及屬性值所在段的段地址送入dsmov ax,stacksg mov ss,ax mov ax,0b800H mov es,ax ;80×25彩色字元模式顯示緩衝區段地址送入es mov cx,3 mov di,0 mov si,06E0h s0:push cx mov al,ds:[16+di] mov bx,0 mov cx,16 s1:mov dl,ds:[bx] mov byte ptr es:[si],dlmov byte ptr es:[si+1],al inc bx add si,2 loop s1 add si,128 inc di pop cx loop s0 mov ax,4c00h int 21h ; 新增程式碼,通過迴圈逐個將每個字元及其屬性送入相應的顯示緩衝區對應行 ; 即:將data段的字元及屬性通過迴圈逐個mov到顯示緩衝區(es)段相應的單元內 ;可以先嚐試分別寫三段程式碼,每次完成一行的顯示 ; 程式執行起來後,再嘗試通過靈活的定址方式和迴圈,對三段程式碼修改和簡化 ; 學習第10章子程式後,還可以進一步完善優化,設計子程式,將行號、列號、顏色屬性設定成入口引數 code ends end start
實驗結果:
總結:
實踐出真知
多重迴圈注意儲存cx的值 不能重複不能丟失