五、WIN10模拟DOS环境之8086汇编实战

该博客介绍了如何在Windows 10环境下搭建DOSBox模拟器和MASM汇编图形化环境,详细阐述了安装DOSBox和MASM的步骤,以及如何配置DOSBox的启动选项。接着,通过编写并运行'Hello, World!'程序以及实现将小写字母转为大写的子程序,展示了8086汇编的实际应用。" 107806605,9829240,TCP协议网上聊天程序实现:Python图形界面与多线程,"['Python', '网络', 'socket', '图形界面', '多线程']
摘要由CSDN通过智能技术生成

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 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值