Lecture Computer organization and assembly language: Chapter 21 - Dr. Safdar Hussain Bouk

After studying this chapter you will be able to understand: Explain why arrays are needed to solve many types of problems; construct an array to store multiple related data values; use ArrayList, Hashtable, and SortedList collections to store and process data values. | CSC 221 Computer Organization and Assembly Language Lecture 21: Conditional and Block Structures: Assembly Programs Lecture 20: Review BT (Bit Test) Instruction Copies bit n from an operand into the Carry flag Syntax: BT bitBase, n bitBase may be r/m16 or r/m32 n may be r16, r32, or imm8 Lecture 20: Review LOOPZ (LOOPE) Syntax: LOOPE/LOOPZ destination Logic: ECX ECX – 1 | if ECX > 0 and ZF=1, jump to destination Useful when scanning an array for the first element that does not match a given value. LOOPNZ (LOOPNE) Syntax: LOOPNZ/LOOPNE destination Logic: ECX ECX – 1; if ECX > 0 and ZF=0, jump to destination Useful when scanning an array for the first element that matches a given value. (cont.) Lecture 20: Review Conditional Structures Block-Structured IF Statements Compound Expressions with AND Compound Expressions with OR WHILE Loops REPEAT Loops (cont.) Block-Structured IF Statements Assembly language programmers can easily translate logical statements written in C++/Java into assembly language. For example: mov eax,op1 cmp eax,op2 jne L1 mov X,1 jmp L2 L1: mov X,2 L2: if( op1 == op2 ) X = 1; else X = 2; Compound Expression with AND When implementing the logical AND operator, consider that HLLs use short-circuit evaluation In the following example, if the first expression is false, the second expression is skipped: if (al > bl) AND (bl > cl) X = 1; cmp al,bl ; first expression. ja L1 jmp next L1: cmp bl,cl ; second expression. ja L2 jmp next L2: ; both are true mov X,1 ; set X to 1 next: Compound Expression with OR (1 of 2) When implementing the logical OR operator, consider that HLLs use short-circuit evaluation In the following example, if the first expression is true, the second expression is skipped: if (al > bl) OR (bl > cl) X = 1; cmp al,bl ; is AL > BL? ja L1 ; yes cmp bl,cl ; no: is BL > CL? jbe next ; no: skip next statement L1: mov X,1 ; set X to 1 next: WHILE Loops while( eax 0 and ZF=1, jump to destination Useful when scanning an array for the first element that does not match a given value. LOOPNZ (LOOPNE) Syntax: LOOPNZ/LOOPNE destination Logic: ECX ECX – 1; if ECX > 0 and ZF=0, jump to destination Useful when scanning an array for the first element that matches a given value. (cont.) Lecture 20: Review Conditional Structures Block-Structured IF Statements Compound Expressions with AND Compound Expressions with OR WHILE Loops REPEAT Loops (cont.) Block-Structured IF Statements Assembly language programmers can easily translate logical statements written in C++/Java into .

Không thể tạo bản xem trước, hãy bấm tải xuống
TÀI LIỆU MỚI ĐĂNG
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.