博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第一篇自己完成的宏汇编
阅读量:4607 次
发布时间:2019-06-09

本文共 629 字,大约阅读时间需要 2 分钟。

assume cs:code,ds:data,ss:stack

stack segment

dw 0,0,0,0,0,0,0,0

stack ends

data segment

db '1. display '

db '2. brows '
db '3. replace '
db '4. modify '

data ends

code segment

start:mov ax,data

mov ds,ax
mov ax,stack
mov ss,ax
mov sp,16
mov si,0
mov bx,0

mov cx,4

s0:push cx
mov cx,4
s:mov al,[bx+si+3]    //bx相当于行 si控制列 3表示起始地址
and al,11011111b
mov [bx+si+3],al //刚开始忘了这一条指令 导致修改了al里面的内容 却没有实质上修改data段的内容
inc si
loop s
add bx,16 //刚开始写的是 inc ds 编译器报错 显然不能直接对段寄存器加减
pop cx
mov si,0 //一开始就已想到 每进入新的一行si要从头开始
loop s0

mov ax,4c00h

int 21h

code ends

end start

 

程序目的:把data段每个单词的前4个字母变成大写

转载于:https://www.cnblogs.com/aloney/p/4488057.html

你可能感兴趣的文章
UIApplicationDelegate协议
查看>>
Jmeter测试dubbo接口填坑
查看>>
[zz]GDB调试精粹及使用实例
查看>>
数据库的创建和删除
查看>>
最简单的三层实例【插入据
查看>>
设计模式学习笔记——Prototype原型模式
查看>>
pom.xml里有红叉报错的解决办法
查看>>
Perl last和next的用法区别
查看>>
Selenium 管理 Cookies
查看>>
exceptionfunction[LeetCode]Permutations
查看>>
Linux(2)_常用命令2
查看>>
自定义分页
查看>>
[转]DELPHI——调试(1)
查看>>
JS秒数转成分秒时间格式
查看>>
xp_cmdshell 命令的开启与关闭,和状态查询
查看>>
Linux sudoers
查看>>
MySQL详解(18)-----------分页方法总结
查看>>
bzoj 4595 激光发生器
查看>>
multi cookie & read bug
查看>>
js时间转换
查看>>