简介 :
将数据段中定义的字符串的首字母大写
代码 :
assume ds:data, ss:stack, cs:code
; 将内存中存放的字符串的首字母变成大写
data segment
; 注意这里的字符串是有规律的
; 1. 首字母位于第三个字节处
; 2. 每个字符串长度都为 16 字节 , 也就是一个字长
db '1. when '
db '2. can '
db '3. i '
db '4. see '
db '5. you '
db '6. again '
data ends
stack segment
stack ends
code segment
start:
; 设置数据段寄存器
mov ax, data
mov ds, ax
; 设置循环初始值
mov bx, 0H
mov cx, 6H
myloop:
mov ax, ds:[bx + 3]
and ax, 11011111B
mov ds:[bx + 3], al ; 注意这里是 al , 否则由于 ax 是 16 位 , 而字符是 8 位 , 因此会覆盖后面一位字符
add bx, 16
loop myloop
finish:
mov ax, 4C00H
int 21H
code ends
end start