编程,将data段中每个单词的前4个字母改为大写
代码如下:
;将data段每个单词的前四个字母改为大写字母
assume cs:code,ss:stack,ds:data
stack segment
dw 0,0,0,0
dw 0,0,0,0
dw 0,0,0,0
dw 0,0,0,0
stack ends
;非常重要!!!↓
data segment
; '0123456789ABCDEF' ;数据在内存中分布不同——》
;会导致我们编写代码的时候,需要用不同的访问内存的方式去访问这些数据
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
data ends
code segment
start:
mov ax,stack
mov ss,ax
mov sp,32
mov ax,data
mov ds,ax
mov bx,0
mov cx,4;要处理四行
;下面是loop的双重嵌套
uprow:
push cx
mov cx,4 ;前四个英语字母
mov si,0
upletter:
mov al,ds:[bx+3+si] ;可以体现出数据在内存中从哪里开始 逻辑清晰 阅读方便 偏移思想
and al,11011111b
mov ds:[bx+3+si],al
inc si
loop upletter
pop cx
add bx,16
loop uprow
mov ax,4c00h
int 21h
code ends
end
在这一章中,我们主要讲解了更灵活的寻址方式和一些编程的方法,主要内容有
- 寻址方式[bx(或si、di)+idata]、[bx+si(或di)]、[bx+si(或di)+idata]的意义和应用
- 二重循环问题的处理
- 栈的应用
- 大小写转化的方法
- and or指令
之所以重视寻址方式这个问题,是因为寻址方式的恰当应用,使我们可以以更合理的结构来看待所要处理的数据。而所要处理的看似杂乱的数据设计一种清晰的数据结构是程序设计的一个关键问题。