欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

将AX寄存器中的16位数据分成4组(从高到低),每组4位,然后把这4组数作为数当中的低4位分别放在AL,BL,CL,DL中。

发布时间:2023/12/1 50 豆豆
生活随笔 收集整理的这篇文章主要介绍了 将AX寄存器中的16位数据分成4组(从高到低),每组4位,然后把这4组数作为数当中的低4位分别放在AL,BL,CL,DL中。 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

将AX寄存器中的16位数据分成4组(从高到低),每组4位,然后把这4组数作为数当中的低4位分别放在AL,BL,CL,DL中。

P176
4.14

编程思路:首先用BX、DX存放AX,即原AX=原BX=原DX;
CL为循环移动二进制数位数4位
AL存放AX中的AH的高四位,BL存放AX中的AH的低四位,
CL存放AX中的AL的高四位,DL存放AX中的AL的低四位。
对于AL来说,只需要将原AX的AH右移四位,然后赋值给AL即可
对于BL来说,只需要将原BX的BH赋值给BL,然后再与0FH进行与操作保留后四位即可
对于CL来说,只需要将原DX的DL赋值给DH,然后将DH进行右移四位,此时的DH赋值给CL即可
对于DL来说,原DX的DL就是本身需要的DL,不需要移动

代码如下:

举例,AX为9810-->1001 1000 0001 0000 最后结果为 AL BL CL DL CODE SEGMENTASSUME CS:CODE START: MOV BX,AX ;BX 1001 1000 0001 0000MOV DX,AX ;DX 1001 1000 0001 0000MOV CL,4 ;CL 0000 0100SHR AH,CL ;AH 0000 1001MOV AL,AH ;AL 0000 1001MOV BL.BH ;BL 1001 1000AND BL,0FH ;BL 0000 1000MOV DH,DL ;DH 0001 0000SHR DH,CL ;DH 0000 0001MOV CL,DH ;CL 0000 0001;最后结果AL BL CL DL === AX;1001 1000 0001 0000 = AXMOV AH,4CH ;调用4CH号功能返回DOS操作系统INT 21H ;终止当前程序的运行,并返回DOS系统 CODE ENDSEND START

总结

以上是生活随笔为你收集整理的将AX寄存器中的16位数据分成4组(从高到低),每组4位,然后把这4组数作为数当中的低4位分别放在AL,BL,CL,DL中。的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。