首頁>技術>

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

最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • Spring boot2整合micrometer實現應用監控