linux assembly language programming PHẦN 7

Sử dụng các công ước, nó là một vấn đề đơn giản để chọn tên của chức năng chuyển đổi bạn giờ bạn đã sẵn sàng để tạo ra một địa chỉ Internet. Ví dụ đưa ra ở đây sẽKhởi tạo một địa chỉ Internet hoang dã Nhược điểm của việc này là khi các mạng và các giao thức phát triển, một người nào đó có thể phải quay trở lại | initiates a data section. With these directives we can direct NASM to produce a .o file with both text and data sections. Adding these directives to Program gives US Program which will compile and run without crashing. Program Tiny program which increments a byte of stored data. global main section .text main MOV AL XYZ INC AL MOV XYZ AL RET section .data XYZ db 3 Segments in c Code Program can be used to determine the addresses of pages allocated to itself. Calling c from Assembler Calling functions involves using the stack. When functions are called using assembler it is possible to see exactly how the stack is used in a function call. Once you know how to use the stack to call a function you can call c library functions to get actual input and output for assembler programs which run under Linux. In order to call printfO and scanfO using assembler it is necessary to push strings onto the stack. This is because the first argument of each of these functions is always a string. The db assembler directive introduced in chapter 6 section can be used to store strings as well as numbers. For example db Hello world n xO can be used to store a string. If the location is labelled then the label may be used to push the address of the stored string. In Edlinas the allowable strings are exactly like those allowed in the c language except that null termination must be explicitly encoded if it is desired. The c language hex escape sequence x may be used to include a null or any other character into the string. Program char a A main char n int i t n a printf Enter a pointer displacement in hex scanf x i printf Pointer value in hex x n n i printf Read write or skip Enter 0 1 or 2 scanf d t if t 0 printf Contents there x n i else if t 1 n i Y printf n In NASM non-ASCII characters are coded outside the string using commas. db Hello world 0AH 0 In order to call scanfO from assembler it is necessary to have a label in a data segment. The scanfO .

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.