【正文】
。verify_page_filljcfaultfault:jmp$byte_fill: Fill every byte in an AT24Cxx with the same value. Writes one address at a time (page mode is not used). Returns CY set to indicate write timeout. Destroys A, B, DPTR, XDATA, ADDR_HI:ADDR_LO.movzdata, FILL set up fill datamovdptr, 0 initialize address pointerx51:movaddr_lo, dpl set up addressmovaddr_hi, dphmovb, 120 retry counterx52:mova, PADDR programmable addresscallwrite_byte try to writejncx53 jump if write OKdjnzb, x52 try againsetbc set timeout error flagjmpx54 exitx53:incdptr advance address pointer。mova, dpl check low byte。cjnea, (LOW SIZE), x51 jump if not lastmova, dph check high bytecjnea, (HIGH SIZE), x51 jump if not lastclrc clear error flagx54:retverify_byte_fill: Verify that all bytes in an AT24Cxx match a fill value. Reads and verifies one byte at a time (page mode is not used). Performs a Random Read function to initialize the internal address counter and checks the contents of the first address. Then performs multiple Current Address Read functions to step through the remaining addressess. Returns CY set to indicate read timeout or pare fail. Destroys A, B, DPTR.movdptr, 0 initialize address pointer/countermovaddr_lo, dpl set up addressmovaddr_hi, dphmovb, 120 retry counterx81:mova, PADDR programmable addresscallread_random try to readjncx82 jump if read OKdjnzb, x81 try againjmpx86 set error flag and exitx82:cjnea, FILL, x86 jump if pare errorjmpx85 do remaining addressesx83:mova, PADDRcallread_currentjcx87 jump if read failscjnea, FILL, x86 jump if pare errorx85:incdptr advance address pointermova, dph check high bytecjnea, (HIGH SIZE), x83 jump if not lastclrc clear error flagjmpx87 exitx86:setbc set error flagx87:retpage_fill: Fill every byte in an AT24Cxx with the same value. Writes one page at a time. Returns CY set to indicate write timeout. Destroys A, B, DPTR, KOUNT, INDEX, ADDR_HI:ADDR_LO. First fill buffer.movb, PSIZE bytes per pagemovindex, buffer point to bufferx61:mov@index, FILL put fill value in bufferincindex advance pointerdjnzb, x61 next byte Copy buffer to device, one page at a time.movdptr, 0 initialize address pointerx62:movaddr_lo, dpl set up addressmovaddr_hi, dphmovkount, PSIZE bytes per pagemovb, 120 retry counterx63:mova, PADDR programmable addresscallwrite_block try to writejncx64 jump if write OKdjnzb, x63 try againsetbc set timeout error flagjmpx66 exitx64: Add page size to address pointer.mova, dpl get low byteadda, PSIZE add page sizemovdpl, a save low bytejncx65 jump if high byte not affectedincdph increment high bytex65:。cjnea, (LOW SIZE), x62 jump if low byte not lastmova, dph16