当前位置: 首页 > news >正文

汇编条件转移指令

目录

条件转移指令(基本格式)

 简单条件转移指令

区分带符号数和无符号数

  无符号数条件转移指令

比较内存中两个无符号数的大小,显示器输出小的数

内存中三个无符号数,输出最小的

符号数的条件转移指令

内存中有三个字节型带符号数,把最大的送到VAR2这个字节单元

无条件转移指令(配合使用)

练习

总结(把这些记住考试就够用了)


条件转移指令(基本格式)

 简单条件转移指令

区分带符号数和无符号数

  无符号数条件转移指令

比较内存中两个无符号数的大小,显示器输出小的数

技巧:都是保证AL中的数是最小的

DATAS SEGMENT
    VAR1 DB 2,3
DATAS ENDS
CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS
START:
    MOV AX,DATAS
    MOV DS,AX
    MOV AL,VAR1
    MOV BL,VAR1+1
    CMP AL,BL
    JB NEXT
    MOV AL,BL
NEXT:
    MOV DL,AL
    ADD DL,30H
    MOV AH,2
    INT 21H
EXIT: 
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

内存中三个无符号数,输出最小的

DATAS SEGMENT
    VAR1 DB 5,2,3
DATAS ENDS
CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS
START:
    MOV AX,DATAS
    MOV DS,AX
    MOV AL,VAR1
    MOV BL,VAR1+1
    CMP AL,BL
    JB NEXT
    MOV AL,BL
NEXT:
    MOV CL,VAR1+2
    CMP AL,CL
    JB NEXT1
    MOV AL,CL
NEXT1:
    MOV DL,AL
    ADD DL,30H
    MOV AH,2
    INT 21H
    
EXIT: 
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

符号数的条件转移指令

内存中有三个字节型带符号数,把最大的送到VAR2这个字节单元

技巧跟上面的题一样,保持AL里面存的是最大值就可以

DATAS SEGMENT
    VAR1 DB 5,2,8
    VAR2 DB ?
DATAS ENDS
CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS
START:
    MOV AX,DATAS
    MOV DS,AX
    MOV AL,VAR1
    CMP AL,VAR1+1
    JG A1
    MOV AL,VAR1+1
A1: 
    CMP AL,VAR1+2
    JG A2
    MOV AL,VAR1+2
A2:
    MOV VAR2,AL
EXIT: 
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

无条件转移指令(配合使用)

练习

1:条件转移指令JNBE产生转移的条件是()

A:CF=0且 ZF=0    B:CF=0且ZF=1   C:CF=0且ZF0  D:CF=1且ZF=1

2:条件转移指令JNE的测试条件为(ZF=0)

A:ZF=0  B:CF=0   C:ZF=1   D:CF=1

3:编写完整汇编语言程序实现如下功能:

在M单元和N单元分别存有一个8位无符号数36H和95H,要求比较这两个无符号数,并根据比较结果在屏幕上显示M>N或者N>M(假设这两个数不相等)

DATAS SEGMENT
GGG DB 'M>N$'
LLL DB 'N>M$'
M DB 36H
N DB 95H
DATAS ENDS
CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS
START:
    MOV AX,DATAS
    MOV DS,AX
    MOV AL,M
    MOV DL,N
    CMP AL,DL
    JB AAAA
    MOV DX,OFFSET GGG
    MOV AH,9
    INT 21H
    JMP EXIT
AAAA:
   MOV DX,OFFSET LLL
   MOV AH,9
   INT 21H  
EXIT:   
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

4:

DATAS SEGMENT
X DB -5
Y DB 20
Z DB 0
DATAS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS
START:
    MOV AX,DATAS
    MOV DS,AX
    MOV Z,0
    MOV AL,X
    MOV BL,Y
    XOR AL,BL
    JS EXIT;SF=1如果符号位不同,就跳转
    MOV Z,1
    CMP AL,0
    JNS EXIT;如果符号位为0
    NEG Z
EXIT:
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

总结(把这些记住考试就够用了)

 

相关文章:

  • Cesium 问题:使用 zoomTo 定位到模型上后展示太大了如何拉远相机
  • 如何在VS Code中安装插件并进行中文化。
  • JVM内存模型最新面试题(持续更新)
  • 蓝桥杯备战24.危险系数——并查集
  • gorm log with traceId 打印带有traceId信息的日志,通过context实现
  • Netty-面试题(上)(四十九)
  • 进程等待
  • Linux系统——Nginx拓展
  • Redis 16种妙用
  • Stable Diffusion 绘画入门教程(webui)-ControlNet(Shuffle)
  • 使用Docker部署MinIO并结合内网穿透实现远程访问本地数据
  • 图片压缩技巧——如何压缩和减少大图像尺寸
  • 核心面试题:MVCC、间隙锁、Undo Log链、表级锁、行级锁、页级锁、共享锁、排它锁、记录锁等等
  • 安卓面经_安卓基础面全解析(7/30)之消息机制全解析(上)
  • Android中AP和BP概念
  • 【OpenFOAM】-olaFlow-算例3- currentWaveFlume
  • 【2022年度系列工作总结】「国内软件质量调查问卷」针对于本年度软件质量分析总结报告
  • Java——LRUCache
  • 实战讲解及分析Spring新建Bean的几种方式以及创建过程(图+文+源码)
  • SpringBoot请求参数传递与接收
  • 数据结构刷题训练营1
  • 泰勒公式的应用
  • ADI Blackfin DSP处理器-BF533的开发详解61:DSP控制ADXL345三轴加速度传感器-LCD(含源码)
  • [附源码]Nodejs计算机毕业设计基于与协同过滤算法的竞赛项目管理Express(程序+LW)
  • SpringSecurity(前后端分离版)[6]-跨域
  • 基于Java毕业设计校园一卡通服务平台源码+系统+mysql+lw文档+部署软件
  • HttpRunner4.x 安装与使用
  • 知到/智慧树——程序设计基础(C语言)进阶篇
  • 10.union all、N天连续登录
  • Nacos系列——Nacos概述(2.x版本)1-1
  • [山东科技大学OJ]1840 Problem N: 幸运单词
  • ch3_1_多进程的概念