1、開發環境的搭建
(1)下載工具
DOSBox(DOS模擬器):/file/2020/09/22/20200922001727_8.jpg.php 0.74-3 Options.bat檔案做如下修改
(4)開啟DOSBox,輸入一下畫紅線的命令
如上圖輸入debug -r 有如上顯示開發環境就搭建好了
二、開發實戰例子
(1)實戰hello world
datas segment
buf db'Hello, World!$';這裡用記憶體存放bai位元組資料 'hellow world!',$用來du判斷字串是否輸出zhi完畢
datas endsstacks segment stackdb 200 dup(0);將200個以位元組為單位的空間填0stacks endscodes segmentassume cs:codes,ds:datas,ss:stacksstart:mov ax,datasmov ds,axmov dx,seg buf;這裡把資料段的地址放到資料段暫存器ds中lea dx,buf;dx中放將要顯示資料的偏移地址mov ah,09hint 21h;呼叫21號中斷的9號功能來顯示字串mov ah,4chint 21h;程式返回codes endsend start
(1)把上面的程式碼儲存成 hello.asm
(2)放到D:\\masm目錄下
(3)編譯masm hello.asm
(4) 連線link hello.obj,
(5)執行hello就會執行出Hello,World!
如下截圖
(2)用子程式實現將從鍵盤輸入的一組字串中的小寫字母改為大寫字母
data segment string db 30 dup('$')data endscode segment assume cs:code,ds:data main proc far start: mov ax,data mov ds,ax ;輸入字串 mov dx,offset string mov ah,10 int 21h mov ah,2 mov dl,0dh int 21h mov dl,0ah int 21h call trans;呼叫大小寫轉換子程式 mov ah,9 lea dx,string+2;注意不能用mov dx,offset string, int 21h mov ah,4ch int 21h main endp ;大小寫轉換子程式 trans proc near lea si,string+2 mov cl,string+1 check: cmp cl,0 jz done mov al,[si] cmp al,'Z' jl next1 jg next2 next1: dec cl inc si jmp check next2: sub al,'a'-'A' mov [si],al dec cl inc si jmp check done: ret;子程式返回 trans endpcode ends end start
最新評論