精品文档
.CODE
START: MOV CX,16
MOV BL,0;BL中放0的个数 AGN: SHL AX,1;数0的个数 JC NEXT INC BL
NEXT: LOOP AGN MOV AL,BL DAA
MOV DL,AL;显示高位 AND DL,0F0H MOV CL,4 SHR DL,CL ADD DL,30H MOV AH,2 INT 21H
MOV DL,AL;显示低位 AND DL,0FH ADD DL,30H MOV AH,2 INT 21H
MOV DL,0DH;显示回车 MOV AH,2 INT 21H
MOV DL,0AH;显示换行 MOV AH,2 INT 21H MOV AX,4C00H INT 21H END START
4.17.答:1、用寄存器传参数。2、用共享变量传参数。3、用堆栈传参数。 4.18.答:设这个32位数放在DX.AX中,求补后的结果也放在DX.AX中。 BUMA PROC PUSH BX PUSH CX XOR BX,BX
精品文档
精品文档
XOR CX,CX SUB BX,AX MOV AX,BX SBB CX,DX MOV DX,CX POP CX POP BX RET
BUMA ENDP
4.19答:设数据个数在CX中,数据缓冲区的首地址为BUF。出口参数:校验和放在SUM字节单元。 CHKSUM PROC PUSH AX PUSH BX DEC CX LEA BX,BUF MOV AL,[BX] AGN: ADD AL,[BX] INC BX LOOP AGN MOV SUM,AL POP BX POP AX RET
CHKSUM ENDP
4.20答:设这个十六进制的字放在数据段的TEMP字单元中。 BTOH PROC PUSH AX PUSH BX PUSH CX PUSH DX MOV CL,4
MOV BX,TEMP
MOV DL,BH;最高位 SHR DL,CL CMP DL,0AH
精品文档
精品文档
JC N1 ADD DL,7 N1: ADD DL,30H MOV AH,2 INT 21H
MOV DL,BH;次高位 AND DL,0FH CMP DL,0AH JC N2 ADD DL,7 N2: ADD DL,30H MOV AH,2 INT 21H
MOV DL,BL;次低位 SHR DL,CL CMP DL,0AH JC N3 ADD DL,7 N3: ADD DL,30H MOV AH,2 INT 21H
MOV DL,BL;最低位 AND DL,0FH CMP DL,0AH JC N4 ADD DL,7 N4: ADD DL,30H MOV AH,2 INT 21H POP DX POP CX POP BX POP AX RET
BTOH ENDP
4.21答:
精品文档
精品文档
.MODEL SMALL
.DATA
BUF DW 9273H,0F3H,6A20H .CODE
START: MOV AX,@DATA MOV DS,AX LEA BX,BUF MOV AX,[BX] CMP AX,[BX+2] JB N1
XCHG AX,[BX+2] MOV [BX], AX N1: MOV AX,[BX+2] CMP AX,[BX+4] JB N2
XCHG AX,[BX+4] MOV [BX+2],AX N2: MOV AX,[BX] CMP AX,[BX+2] JB STOP
XCHG AX,[BX+2] MOV [BX], AX STOP: ;INT 3 MOV AX,4C00H INT 21H END START
4.22答: DISPLAY MACRO MOV AH,2 INT 21H ENDM
.MODEL SMALL
.DATA DAT DB 9CH .CODE
START: MOV AX,@DATA
精品文档