鱼C论坛

 找回密码
 立即注册
查看: 3812|回复: 0

jcxz 跳转问题

[复制链接]
发表于 2017-6-5 22:44:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 西殴 于 2017-6-5 23:18 编辑

不好意思问了个蠢问题     自己弄明白了   
  1. assume cs:code

  2. data segment
  3.         db 'abcdef',0
  4.         db 'oluyoy',0
  5.         db 'edfggs',0
  6.         db 'fdfdga',0
  7. data ends

  8. code segment
  9.         start:        mov ax,data
  10.                         mov ds,ax
  11.                         mov si,0                 ;指向ds字符串首地址
  12.                         mov cx,4
  13.         s:                push cx
  14.                         ;push si                        ;这里为什么要push si 如果不要行不行
  15.                         call capital
  16.                         ;pop si                         ;pop si
  17.                         pop cx
  18.                         add si,7                    ;第一行字符串改写完成 后si +7
  19.                         loop s
  20.                         mov ax,4c00H
  21.                         int 21H
  22.                        
  23.         capital:        mov cl,[si]                ;第一行字符串完成后这里的 si 不是应该是 000D 么 si 为7的话 cx 应该是000D啊  
  24.                         mov ch,0
  25.                         jcxz ok
  26.                         and byte ptr [si],11011111b  ; 将data字符串改写成大写
  27.                         inc si
  28.                         jmp short capital
  29.         ok:                ret
  30.         code ends
  31. end start
复制代码


如果不要push si  第二的db数据就不会改写   ds:【000D】为0 所以jcxz就直接跳转了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-4 20:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表