1、4、 自编ASCII码十六进制、十进制小数二进制、二进制BCD码的程序,并调试运行。(1)ASCII码十六进制DATA SEGMENT data1 DB 33H,46H,34H,32HBIN DB 4 DUP(?)DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX MOV CX,04H MOV SI,OFFSET data1 MOV DI,OFFSET BINNEXT:MOV AL,SI SUB AL,30H CMP AL,0AH JB LESS1 SUB AL,07HLESS1:INC SI MOV
2、DI,AL INC DI LOOP NEXT MOV AH,4CH INT 21H CODE ENDSEND START(2)十进制小数二进制十进制11.46 转换成二进制0000 1011 0111 0101(D15D0,小数点位置在D8后面,小数和整数各占8位)DATA SEGMENT XS DB 46 ZS DB 11 BINX DB ? BINZ DB ?DATA ENDSSTACK SEGMENT PARA STACK STACK DB 100 DUP(?)STACK ENDSCODE SEGMENT ASSUME DS:DATA,CS:CODEMAIN PROC FAR PUSH
3、DS SUB AX,AX PUSH AX MOV AX,DATA MOV DS,AX MOV CX,0008H MOV BX,0000H MOV DH,XSFF1: MOV AH,00H MOV AL,DH MOV DL,100 ADD AX,AX DIV DL SHL BL,1 MOV DH,AH CMP AL,00H JE FF2 OR BL,01HFF2: LOOP FF1 MOV CX,0008H MOV DH,ZSFF3: MOV AH,00H MOV AL,DH MOV DL,2 DIV DL SHR BH,1 MOV DH,AL CMP AH,80HFF4: LOOP FF3 M
4、OV BINX,BL MOV BINZ,BH RET MAIN ENDP CODE ENDS END MAIN(3)二进制BCD码的程序DATA SEGMENT BIN DW 0CA3BH ASDEC DB 5 DUP(?) PWTAB DW 10000,1000,100,10,1DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX MOV DI,OFFSET ASDEC MOV SI,OFFSET PWTAB MOV AX,BINLOP1:XOR CL,CL MOV BX,SILOP2:SUB AX,BX JB NEXT INC CL JMP LOP2NEXT:ADD AX,BX MOV DI,CL INC SI INC SI INC DI CMP BX,1 JNZ LOP1 MOV AH,4CH INT 21HCODE ENDS END START