马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 西殴 于 2017-6-5 23:18 编辑
不好意思问了个蠢问题 自己弄明白了 assume cs:code
data segment
db 'abcdef',0
db 'oluyoy',0
db 'edfggs',0
db 'fdfdga',0
data ends
code segment
start: mov ax,data
mov ds,ax
mov si,0 ;指向ds字符串首地址
mov cx,4
s: push cx
;push si ;这里为什么要push si 如果不要行不行
call capital
;pop si ;pop si
pop cx
add si,7 ;第一行字符串改写完成 后si +7
loop s
mov ax,4c00H
int 21H
capital: mov cl,[si] ;第一行字符串完成后这里的 si 不是应该是 000D 么 si 为7的话 cx 应该是000D啊
mov ch,0
jcxz ok
and byte ptr [si],11011111b ; 将data字符串改写成大写
inc si
jmp short capital
ok: ret
code ends
end start
如果不要push si 第二的db数据就不会改写 ds:【000D】为0 所以jcxz就直接跳转了 |