1, 汇编语言emu8086
DATA SEGMENTA DB 34H,30H,35H,38H,39H,33H,37H,2AH,0CH,9DH,0N EQU $ - ADATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATASTART:MOV AX, DATAMOV DS, AXCALL DISP ;先显示一遍;-----------------------------SORT: ;开始排序MOV CX, NDEC CXL1:PUSH CXLEA BX, AL2:MOV AL, [BX] CMP AL, [BX + 1]JB NEXTXCHG AL, [BX + 1]MOV [BX], ALNEXT:INC BXLOOP L2POP CXLOOP L1;-----------------------------CALL DISP ;再显示一遍EXIT: MOV AH, 4CHINT 21H;=============================DISP:LEA BX, AMOV CX, NN0:MOV AL, [BX]MOV AH, 0MOV DL, 16DIV DLMOV DX, AXMOV AH, 2CMP DL, 10JB N1ADD DL, 7N1: ADD DL, "0"INT 21HMOV DL, DHCMP DL, 10JB N2ADD DL, 7N2: ADD DL, "0"INT 21HMOV DL, "H"INT 21HMOV DL, " "INT 21HINC BXLOOP N0MOV DL, 13INT 21HMOV DL, 10INT 21HRET;=============================CODE ENDSEND START
2, 汇编,用子程序编写
.model tiny.code; 输入AL为2进制,输出AL为对应的ASCII码BIN2HEX PROCCMP AL,9JBE L_10ADD AL, "A"-"9"-1L_10:ADD AL,"0"RETBIN2HEX ENDP;主程序start:MOV AX, 1BhPUSH AXSHR AL,1SHR AL,1SHR AL,1SHR AL,1CALL BIN2HEXMOV DH,ALPOP AXAND AL,0FHCALL BIN2HEXMOV DL,ALMOV AX,4C00hint 21h;结束end start
3, 汇编语言里jc指令是什么意思?
JC=Jump if Carry当运算产生进位标志时,即CF=1时,跳转到目标程序处。例如:add al,bljc carrybitinc al;如果al+bl产生了进位,这一句就不执行了。carrybit:neg al这段程序没有任何意义,仅仅作为示例哈。。。相同的指令还有:JNC,当CF=0时跳转;JZ,当ZF=1时跳转,JNZ,当ZF=0时跳转;JO,当OF=1时跳转,JNO,当OF=0时跳转;JP,当PF=1时跳转……依此类推,标志寄存器的各个位基本上都可以用来做“条件跳转”的条件。当然,条件跳转不仅仅是标志寄存器位,还可以是CX如:a_loop:;do something dec cxjcxz jmp a_loop可以看出,这一段相当于一个loop指令。。。还有,用于大小判断型的:cmp op1,op2JXX XXXX其中JXX有以下几种:JA表示op1>op2,JNA表示op1<=op2;JB表示op1<op2,JNB表示op1>=op2;JE表示op1=op2,JNE表示op1<>op2;还有JAE、JNAE、JBE、JNBE等等功能重复不再赘述。以上是无符号数的比较。有符号数的比较将A换成G,将B换成L即可。A=above B=below G=greater L=less介绍的够详细了吧。。。
5, 用汇编语言写约瑟夫环
CMP OPR1 , OPR2指令只是对操作数OPR1 , OPR2之间运算比较,不保存结果。指令本身不进行跳转,只是根据结果设置相关的条件标志位(SF、ZF、CF、OF),CMP指令后往往跟着条件转移指令,实现根据比较的结果产生不同的程序分支的功能。格式:CMP OPR1 , OPR2.执行操作:(OPR1)-(OPR2)功能:该指令与SUB指令一样执行减法的操作,但它并不保存运算结果,只是根据结果设置相关的条件标志位(SF、ZF、CF、OF)。CMP指令后往往跟着条件转移指令,实现根据比较的结果产生不同的程序分支的功能。跳转相关的条件跳转指令:1、JA/JNBE DEST指令:转移条件是CF=0 AND ZF=0,含义是无符号数A>B,英文表示是JMP above (not below or equal)。2、JAE/JNB DEST指令:转移条件是CF=0,含义是无符号数A≥B,英文表示是JMP above or equal (not below )。3、JB/JNAE DEST指令:转移条件是CF=1,含义是无符号数A<B,英文表示是JMP blow (not above or equal)。4、JBE/JNA DEST指令:转移条件是CF=1 OR ZF=1,含义是无符号数A≤B,英文表示是JMP blow or equal (not above)。参考资料来源:百度百科-CMP指令参考资料来源:百度百科-条件转移指令
名词解释
跳转
这个动作难度不是很大,但是需要协调性跟腰力支配身体。首先要练习的是第一周的翻腾。 起始动作如右图所示动作要点:身体跟双腿大腿部保持平行,用腰的力量。身体重心要把握好,不要太偏了。