linux assembly language programming PHẦN 4

và các trang con tất cả tạo thành một cây phân cấp, như thể hiện trong ảnh chụp màn hình sau đây: Thiết lập một trang chủ và cơ cấu Navigation cho mạng Intranet Sử dụng các chức năng này là khá đơn giản. Ví dụ, để chuyển đổi một số nguyên ngắn thứ tự mạng, các mã sau đây có thể được sử dụng: | let AX AL BH When an eight-bit register is used it always multiplies by AL and stores the result in AX. When a 16-bit register is used for example MUL BX then the command means let DX AX AX BX where the 32-bit answer is stored in two 16-bit registers. The top 16 bits are stored in DX the bottom 16 bits in AX. When a 32-bit register is used for example MUL EBX then the command means let EDX EAX EAX EBX A single register is all that you specify when you use the MUL command. The other registers are always implied. The situation is similar to that with the ADD command on the 8080 processor where addition results are always stored in the A register. The command ADD B in 8080 assembly language means letA A B Unlike the ADD and SUB commands the MUL command has no immediate form. The command MUL 7 is not valid. The DIV Command The DIV command closely resembles the MUL command in syntax and is essentially its inverse. It forms both a quotient and a remainder dividend remainder quotient 32-bit form EDX EAX EDX EAX 16-bit form DX AX DX AX 8-bit form AX AH AL For example if AX held the value 17 and BH held the value 3 then DIV BH would store 2 in AH and 5 in AL. The command would be recognized as an eight-bit command because BH is an eight-bit register. Division by zero produces an error called an exception. Exceptions are dealt with in chapter 9. It is important to note that because of the sizes of the registers involved in division zero is not the only divisor which can cause an exception. For example when AX is divided by a number stored in an eight-bit register the quotient is supposed to be stored in AL an eight-bit register. But dividing a 16-bit number by an eight-bit number does not always produce a number which can be stored in eight bits. For example 1024 2 in hex 400H 2 200H. But 200H requires at least ten bits of storage. This means that the following code will cause an exception MOV AX 400H MOV BH 2 DIV BH ThiserroriscalledadMhMnoy m Negative

Không thể tạo bản xem trước, hãy bấm tải xuống
TỪ KHÓA LIÊN QUAN
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.