char *p = qPrintable( str );p[10345] = 0;
char *p = (char *)qPrintable( str );p[10345] = 0;
char *p = (char *)qPrintable( str );p[10345] = 0; //указател невалиден!
; Загрузить в регистр AL значение, расположенное по некоторому адресу (в регистре BX лежит адрес)MOV AL, [BX]
; Загрузить в регистр SI некий хитро вычисленный адресLEA SI, [BX+DI]; Загрузить в аккумулятор значение байта памяти, расположенного по адресу, указанному в регистре SI.MOV AL, [SI]
LEA DI,[BX].filename ; Загружаем в регистр DI некий адрес начала строкиCLD ; При каждой итерации, DI будет увеличиваться (сканирование вперед)MOV CX,100 ; В регистр CX загружаем длину строки (100 байт)MOV AL,'a' ; какой символ будем искать; А вот и сама команда поиска; Пробегаем область памяти, начиная с ячейки, адрес которой лежит в DI ; Проверяем, не содержится ли в ячейке символ 'a'; После проверки каждой ячейки DI автоматически увеличится на единицу; Будет обработано количество ячеек, указанное в CX; После проверки каждой ячейки CX автоматически уменьшится на единицу; Поиск либо завершится досрочно, если будет встречен символ 'a'; либо пробежит все 100 байтREPNE SCASBJNE FIN ; Ежели ничего не найдено, прыгаем на код, который обрабатывает ситуацию что ничего не найдено... ; А здесь код, который обрабатывает ситуацию что символ найден