目录
条件转移指令(基本格式)
简单条件转移指令
区分带符号数和无符号数
无符号数条件转移指令
比较内存中两个无符号数的大小,显示器输出小的数
内存中三个无符号数,输出最小的
符号数的条件转移指令
内存中有三个字节型带符号数,把最大的送到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
总结(把这些记住考试就够用了)