汇编语言程序设计:数据操作与输出
1、
MOV AL,AH ;将AX的高位复制到AL中 AND AL,0FFH ;将AL清零 MOV AH,0 ;将AX的高位清零 MOV CL,8 ;将CL设为8 LOOP1: ;循环开始 SHR AX,1 ;将AX右移一位 RCL AL,1 ;将AL左移一位并将AX的最低位存入AL的最高位 DEC CL ;CL减1 CMP CL,4 ;如果CL等于4则跳转到LOOP2 JE LOOP2 CMP CL,0 ;如果CL等于0则跳转到DONE JE DONE JMP LOOP1 ;跳转到LOOP1继续循环 LOOP2: ;循环开始 AND BL,0FH ;将BX的低4位保留 SHR CX,12 ;将CX右移12位 AND CL,0FH ;将CX的高4位保留 OR AL,BL ;将BX的低4位拼接到AL的中间8位 SHL CL,4 ;将CX的高4位左移4位 OR AL,CL ;将CX的高4位拼接到AL的高位 JMP DONE ;跳转到DONE结束程序 DONE: MOV [DI],AX ;将AL和AH组成的新字存入DI指向的存储单元
2、
MOV DX,0 ;将DX清零 DIV WORD PTR 4 ;将AX除以4,结果存入DX:AX
3、
;二进制输出 MOV BX,76ADH MOV CX,16 ;将CX设为16 LOOP1: SHR BX,1 ;将BX右移一位 JCXZ DONE ;如果CX等于0则跳转到DONE MOV DL,'0' ;将DL设为字符'0' JNC SKIP1 ;如果BX的最低位为0则跳转到SKIP1 MOV DL,'1' ;将DL设为字符'1' SKIP1: MOV AH,2 ;调用DOS功能2,输出字符 INT 21H DEC CX ;CX减1 JMP LOOP1 ;跳转到LOOP1继续循环 DONE:
;十六进制输出 MOV BX,76ADH MOV CX,4 ;将CX设为4 LOOP2: MOV DL,BL ;将BX的低8位复制到DL中 AND DL,0FH ;将DL的高4位清零 CMP DL,9 ;如果DL小于等于9则跳转到SKIP2 ADD DL,7 ;将DL加上字符'A'与'9'之间的差值 SKIP2: ADD DL,'0' ;将DL加上字符'0' MOV AH,2 ;调用DOS功能2,输出字符 INT 21H SHR BX,4 ;将BX右移4位 DEC CX ;CX减1 JNZ LOOP2 ;如果CX不等于0则跳转到LOOP2继续循环
;十进制输出 MOV BX,76ADH MOV CX,5 ;将CX设为5 MOV DX,0 ;将DX清零 MOV AX,BX ;将BX复制到AX中 DIV WORD PTR 10 ;将AX除以10,商存入AX,余数存入DX CMP AX,0 ;如果AX等于0则跳转到SKIP3 PUSH AX ;将AX保存到栈中 INC CX ;CX加1 JMP LOOP3 ;跳转到LOOP3继续循环 SKIP3: MOV DL,'0' ;将DL设为字符'0' MOV AH,2 ;调用DOS功能2,输出字符 INT 21H LOOP3: POP AX ;将AX从栈中弹出 OR AX,0 ;将AX和0相或,将标志位清零 JZ DONE ;如果AX等于0则跳转到DONE ADD AL,'0' ;将AL加上字符'0' MOV DL,AL ;将AL复制到DL中 MOV AH,2 ;调用DOS功能2,输出字符 INT 21H DEC CX ;CX减1 JMP LOOP3 ;跳转到LOOP3继续循环 DONE:
原文地址: https://www.cveoy.top/t/topic/nd7c 著作权归作者所有。请勿转载和采集!