30H, 32H COUNT EQU ($-ASCBUF)/2 ;$为当前地址指针 BCDBUF DB COUNT DUP() DATA ENDS CODE SEGMENT ASSUME CS: CODE, DS:DATA, ES:DATA START: MOV AX, DATA MOV DS, AX MOV ES, AX ;设置附加段与数据段完全重叠 CLD MOV SI, OFFSET ASCBUF MOV DI, OFFSET BCDBUF MOV CX, COUNT AA: LODSB AND AL, 0FH MOV BL, AL LODSB PUSH CX MOV CL, 4 SHL AL, CL POP CX OR AL, BL STOSB LOOP AA MOV AH, 4CH INT 21H CODE ENDS END START
12h blk2 db 21h,43h,65h,87h,90h count equ $-blk2 sum0 db 6 dup (00h) data ends code segment assume cs:code, ds:data start: mov ax, data mov ds, ax lea si, blk1 lea bx,blk2 lea di,sum0 mov cx, count clc aa:mov al, [si] adc al, [bx] daa mov [di], al inc si inc bx inc di loop aa mov al, 00h adc al, 00h mov [di], al mov ah,4ch int 21h code ends end start
A.XCHG AH,AL
B.XCHG AL,AH
C.MOV CL,08H ROL AX,CL
D.MOV CL,08H RCR AX,CL
假设DX:AX中存放一个双字的数据:
请问:上述程序段完成什么功能?设执行前,DX=D001H,AX=FFFFH,上述程序段执行后,DX,AX的值是什么?
A.17H,4030H:2010H
B.17H,2010H:4030H
C.16H,4030H:2010H
D.16H,2010H:4030H