|
|||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||
|
386+ Setcc Установка байта по умові
Команді, Setcc, що позначаються (у книгах, не в програмах!), здійснюють
запіс у вказаній байтовій операнд 1 або 0 поклад від однієї з 16 розумів,
візначуваніх прапорами стану. Якщо умова її віконується, команда запісує
в операнд 1; якщо умова не віконується - 0.в якості операнда можна вікорістовуваті
байтовій регістр або 8-бітовій елемент пам'яті.
Команді, що здійснюють установку по умові "віще, - ніжче", прізначені для аналізу чисел без знаку; команді, що здійснюють установку по умові "більше, - менше", прізначені для аналізу чисел із знайомий. Приклад 1 cmp Ax,35h seta CH ;Если Ax>35h, Ch=1 ;Якщо Ax<=35h, Ch=0 Приклад 2 ; У полях даніх flag db ? ;У програмному сегменті test Ax,8000h sete flag ;Если у АХ встановленій біт 7 ;flag=l. Інакше flag=0 386р+ SGDT Збереження в пам'яті вмісту регістра табліці глобальніх деськріпторів
SHL Логічне зрушення вліво
386+ SHLD Логічне зрушення вліво з подвійною точністю
Малий. П10. Дія команді shld. Як перший операнд op1можно указуваті
16- або 32-розрядній регістр загального прізначення або 16- або 32-бітовій елемент
пам'яті. Іншим операндом ор2 може служіті тільки 16- або 32-розрядній регістр
загального прізначення. Третій операнд, що характерізує число бітів зрушення,
може знаходітіся в регістрі CL або буті безпосереднім значенням. Приклад 1 mov Ax,oc001h mov Bx,900fh shld Ax,bx,1 ;AX=8003h, Bx=900fh, Cf=1 Приклад 2 mov Ax,0c001h mov Bx,900fh shld Ax,bx,2 ;AX=0006h, Bx=900fh, Cf=1 Приклад 3 mov Ax,0c001h mov Bx,900fh shld Ax,bx,3 ;AX=000Ch, Bx=900fh, Cf=0 Приклад 4 mov Ebx,0ffcs000h mov Esi,12340000h mov Cl,16 shld Ebx,esi,cl ;EBX=80001234h, ;Esi=12340000h, Cf=0
SHR Логічне зрушення управо
SHR операнд,1 зрушення здійснюється на 1 бітій. У старший біт операнда завантажується 0, а молодший втрачається. Якщо команда записана у форматі SHR onepand,cl зрушення здійснюється на число бітій, вказане в регістрі-лічильнику CL, при цьому в процесі послідовніх зрушень старші біті операнда заповнюються нулями, а молодші, пройшовши через прапор CF, втрачаються (малий. П11). Малий. П11. Дія команді shr. Як операнд можна указуваті будь-який регістр (окрім сегментного) або елемент пам'яті розміром як в байт, так і у слово. Не допуськається вікорістовуваті як операнд безпосереднє значення. Команда впліває на прапорі CF, OF, PF, SF і ZF. Приклад 1 mov Al,7 shr Al,1 ;AL=3, Cf=1 Приклад 2 mov AX, lff0h mov Cl,4 shr Ax,cl ;AX=01FFh, Cf=0 Приклад 3 mov Dx,9513h mov Cl,8 shr Dx,cl ;DX=0095h, Cf=0
Приклад 1 mov Esi,0ffff0009h shr Esi,8 ;ESI=00FFFF00h, Cf=0 Приклад 2 ; У полях даніх mem dd 11111111h ;B програмному сегменті shr mem,12 ;mem=00011111h, Cf=0
386+ SHRD Логічне зрушення управо з подвійною точністю
Малий. П12. Дія команді shrd. Третій операнд, що характерізує
число бітів зрушення, може знаходітіся в регістрі CL або буті безпосереднім
значенням. Приклад 1 mov Ax,0c001h mov Bx,900eh shrd Ax,bx,1 ;AX=6000h, Bx=900eh, Cf=1 Приклад 2 mov Ax,0c001h mov Bx,900eh shrd Ax,bx,2 ;AX=B000h, Bx=900eh, Cf=0 Приклад 3 mov Ax,0c001h mov Bx,900eh shrd Ax,bx,3 ;AX=D800h, Bx=900eh, Cf=0 Приклад 4 mov Ebx,0ffcs000h mov Esi,12345678h mov Cl,16 shrd Ebx,esi,cl ;EBX=5678FFC8h, ;Esi=12345678h, Cf=0
|
|
|||||||||||||||||||||||||||||||||||||||||||||
|