1、开发环境的搭建
(1)下载工具
DOSBox(DOS模拟器):https://www.dosbox.com/download.php?main=1
masm(汇编图形化环境):https://www.jb51.net/softs/709793.html
(2)安装
(1)DOSBox下载完成后默认安装就可以
(2)把masm包解压,例如如下放在D盘
(3)双击修改DOSBox安装目录下的DOSBox 0.74-3 Options.bat文件做如下修改
(4)打开DOSBox,输入一下画红线的命令
如上图输入debug -r 有如上显示开发环境就搭建好了
二、开发实战例子
(1)实战hello world
datas segment
buf db'Hello, World!$';这里用内存存放bai字节数据 'hellow world!',$用来du判断字符串是否输出zhi完毕
datas ends
stacks segment stack
db 200 dup(0);将200个以字节为单位的空间填0
stacks ends
codes segment
assume cs:codes,ds:datas,ss:stacks
start:
mov ax,datas
mov ds,ax
mov dx,seg buf;这里把数据段的地址放到数据段寄存器ds中
lea dx,buf;dx中放将要显示数据的偏移地址
mov ah,09h
int 21h;调用21号中断的9号功能来显示字符串
mov ah,4ch
int 21h;程序返回
codes ends
end 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 ends
code 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 endp
code ends
end start