码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 汇编语言(6)使用JCC指令构造分支与循环


    1 数据段的使用

    汇编语言打印字符串。

    assume cs:code,ds:data
    
    data segment
    	buffer db 0DH,0AH,'day3$'
    data ends
    
    code segment
    main proc
    	mov ax,data
    	mov ds,ax
    	mov dx,offset buffer
    	mov ah,09H
    	int 21H
    	mov ah,07H
    	int 21H
    	mov ax,4C00H
    	int 21H
    main endp
    start:call main
    code ends
    end start
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    2 flag寄存器

    CMP OPRD1,OPRD1
    SUB影响标志位
    AX = 8
    BX = 8
    相等 AX - BX = 0 ZF = 1

    AX = 8
    BX = 1
    不相等 AX - BX != 0 ZF = 0

    AX < BX:发生借位
    CF = 1
    AX > BX:不发生借位
    AX - BX = ?CF = 0 ZF = 0
    AX <= BX:
    AX - BX = ? CF = 1 || ZF = 1
    AX >= BX:
    AX - BX = ? CF = 0 || ZF = 1

    一类 JCC 指令 跳转
    JMP address
    JE 条件转移指令 等于则跳转 ZF = 1
    JNE 不等于则跳转 ZF = 0
    JB 低于则跳转 CF = 1
    JA 高于则跳转 CF = 0 && ZF = 0
    JNA 小于等于则跳转 CF = 1 或者 ZF = 1
    JNB 大于等于则跳转 CF = 0

    3 跳转

    assume cs:code,ds:data
    
    data segment
    	buffer db 0DH,0AH,'day3$'
    	buffer1 db 0DH,0AH,'day2$'
    data ends
    
    code segment
    main proc
    	mov ax,data
    	mov ds,ax
    	mov dx,offset buffer
    	mov ah,09H
    	int 21H
    	jmp qq1
    	mov dx,offset buffer1
    	mov ah,09H
    	int 21H
    qq1:
    	mov ah,07H
    	int 21H
    	mov ax,4C00H
    	int 21H
    main endp
    start:call main
    code ends
    end start
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    创造跳转条件

    assume cs:code,ds:data
    
    data segment
    	buffer db 0DH,0AH,'day3$'
    	buffer1 db 0DH,0AH,'day2$'
    data ends
    
    code segment
    main proc
    	mov ax,data
    	mov ds,ax
    	mov dx,offset buffer
    	mov ah,09H
    	int 21H
    
    	mov ax,1
    	mov bx,2
    	cmp ax,bx
    	ja qq1
    	
    	mov dx,offset buffer1
    	mov ah,09H
    	int 21H
    qq1:
    	mov ah,07H
    	int 21H
    	mov ax,4C00H
    	int 21H
    main endp
    start:call main
    code ends
    end start
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    需要满足多个条件则依次判断是否满足条件。
    循环

    for(int i = 0; i <= 100; i ++)
    
    mov cx,0
    qq2:
    cmp cx,100
    ja qq
    	mov dx,offset buffer
    	mov ah,09H
    	int 21H
    	inc cx
    	jmp qq2
    qq:
    
    mov cx,0
    qq2:
    	mov dx,offset buffer
    	mov ah,09H
    	int 21H
    	inc cx
    	cmp cx,100
    	jb qq2
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
  • 相关阅读:
    Vb6 TCP Server服务端监听多个RFID读卡器客户端上传的刷卡数据
    Promise和模块块化编程
    java+python+nodejs+vue+php留守儿童帮扶网站
    生日攻击及CTF例子
    领域驱动设计(DDD):三层架构到DDD架构演化
    【 web网页设计期末课程大作业】基于HTML+CSS+JavaScript智慧路灯综合管理系统
    题目:2765.最长交替子序列
    Immutable.js简介
    【AI学习笔记】TensorFlow GPU版本的安装(超详细)
    基于FPGA的图像形态学腐蚀算法实现,包括tb测试文件和MATLAB辅助验证
  • 原文地址:https://blog.csdn.net/weixin_61823031/article/details/125460233
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号