汇编语言中取一个DW型数的高八位,如何实现?

来源:百度知道 编辑:UC知道 时间:2024/07/07 20:37:27
对于一个DW型的数如0187H怎么样来取出它的高八位?用汇编语言来实现,假设次数现在存在一个寄存器中.急用!!

在8086中有AX,BX,CX,DX四个通用数据寄存器,他们既可以作为一个16位(DW型)寄存器,也可以分别作为两个8位寄存器使用,低8位分别是AL,BL,CL,DL,高8位分别为AH,BH,CH,DH。
你把要处理的DW型数(如0187H)存到16位寄存器中(如AX),则AH=01H,AL=87H,接下来你就可以直接使用AH中的高八位了,这是比较简单的。如果你是从存储单元获得数据,可以通过字节读取数据直接获得。

先装入16位寄存器AX中,如,
mov ax,0187h
AX的高位字节,即AH就是你要的高八位。

MOV AX,#0187H
ANL AX,#1100 让低八位为0
MOV CX,#0100H
ROR AX,CX 循环右移八位,让高八位移到低八位