freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

ibm-pc匯編語言程序設計(參考版)

2025-07-18 22:48本頁面
  

【正文】 一定為負數 。是奇數嗎 ? Example2 TEST CL, 10000001b JZ EvenAndNonNegative 。encrypts/decrypts byte in AL TEST ? TEST destination, source ? 執(zhí)行 AND的操作,只是不改變數據的值 ? 標志位如同 AND一樣被設置 ? Example1 TEST CX, 0FFH JZ exit 。) OR AH,00100000b 。39。,39。39。AH contains letter (39。DL 中為數字 09 OR DL,00110000b 。set DS mov bx,17h 。 ? 用于有符號數 AND, OR, XOR ? AND|OR|XOR destination, source ? reg, reg|mem|immed ? mem, reg|immed ?操作對標志位 SF, ZF, PF有影響, CF=OF=0 x AND y = 1 x = y = 1 x OR y = 0 x = y = 0 x XOR y = 0 x = y AND的應用 ?某一位清 0 ? AND AH, 01111111B ?將第 7位清 0,而其它的位保持不變 ?部分清 0 ? AND AX,000Fh ?將 AX的低 4位部分保留,其余清 0 NumLock設置關閉 。End processing INT 21H MAIN ENDP END MAIN 1 直接 (存儲器 )尋址 ? 格式:在數據段中定義的數據變量的名稱 ? 有效地址 EA的計算: 默認情形下數據段 DS+變量地址 50 30 32022 AH AL 30 50 (AX) = 3050H 舉例 VAR1 DW 3050H …… MOV AX, VAR1 假設: VAR1的偏移地址為 2022H, (DS)=3000H, 那么物理地址 =32022H 說明 ? 隱含的段為數據段 DS ? 可指定段跨越前綴 MOV AX, ES: [2022H] ? 操作數地址可由變量(符號地址)表示 , 但要注意變量的屬性 VALUE DB 10 …… MOV AH, VALUE ? MOV AX, VALUE ? MOV AX, WORD PTR VALUE ? 直接偏移量尋址 ?格式: name[offset] 或者 name+offset ?有效地址:變量的地址加上偏移量加上數據段的地址 ?DS:(address+offset) ?舉例: ARRAY1 DW 10 DUP(?) .... ADD AX, ARRAY1[2] ADD BX, ARRAY1+6 (寄存器)間接尋址 ?格式: [register] ?允許的寄存器: BX, DI, SI, BP ? EA: DS:BX, DS:DI, DS:SI, SS:BP ?舉例: VAR1 DW 125 VAR2 DW 23H …… LEA BX, VAR1 MOV [BX], VAR2 基址偏移量尋址 ? 格式: [register + offset], offset[register] ? 允許的寄存器: BX, DI, SI, BP ? EA: DS:(BX + offset), DS:(DI + offset), DS:(SI + offset), SS:(BP + offset) ? 舉例: VAR1 DW 125 ARRAY1 DW 10 DUP(?) …… LEA BX, ARRAY1 MOV [BX+3], VAR1 MOV [BX+4], 2[BX] 有效地址 = (BX) (BP) 8位 (SI) 16位 (DI) + 位移量 基址變址尋址 ?格式: [ basereg + indexreg ] ? base registers: BX 或 BP ? index register: DI 或 SI ? EA: DS:(basereg + indexreg) ? 舉例: MOV AX, [BX] [DI] 或 MOV AX, [BX+DI] 或 MOV AX, ES:[BX] [SI] 有效地址 = (BX) (SI) (BP) (DI) + 帶偏移量的基址變址尋址 ? 格式: [basereg+ indexreg + offset] 或者offset[basereg+indexreg] ? base registers: BX 或者 BP ? index register: DI, SI ? EA: DS:(basereg + indexreg + offset) ? 舉例: MOV AX, MASK [BX] [SI] 或 MOV AX, MASK [BX+SI] 或 MOV AX, [MASK+BX+SI] 有效地址 = (BX) (SI) 8位 (BP) (DI) 16位 + + 位移量 段跨越前綴 ?數據段默認地址存放在 CS寄存器中,不需指明 ?若明確指明使用其它的數據段,稱為段前綴。Move immediate ADD EDX,25H 。Subtract immediate MOV WORDFLD,40H 。Move immediate ADD CX,150 。Set address of data MOV DS,AX 。Word DWDFLD DD 0 。 BYTEFLD DB 150 。Define data segment DB 39。04H LENGTH和 SIZE ? LENGTH返回數組變量元素的個數 ? SIZE返回數組元素的字節(jié)大小 Size = length * type ORG 和 $ ? ORG n ? 定位常數值為 n的偏移地址 ? $ ? 當前偏移地址 ?例: ORG $+8 ? 可以表示跳過 8個字節(jié)的存儲區(qū) 例題 ?例如: BUF DW 1,2,$+1,3 如果 BUF的偏址為 10H,問內存情況如何? ?例如: ?BUF DB 1,2,3,4 ?ABC EQU $ OFFSET BUF ? 問 ABC等于什么? PTR ?強制修改操作數的類型 ?例如: ? MOV [BX], AX 對 ? MOV [BX], 4 錯 改為: ? MOV WORD PTR [BX], 4 ? MOV BYTE PTR [BX], 4 簡單的算術運算 ADD dest, source SUB dest, source INC dest DEC dest ? 操作數的類型一定要一致 ? 對標志寄存器起作用 ? 源操作數 可以為常數,存儲器地址,通用寄存器 ? 目標寄存器 可以為通用寄存器或者存儲器地址 ? 不能同時為操作數 2 尋址方式 Assembly Language Programming 尋址方式 ? 尋址方式定義了: ? 操作數獲取數據的方法 ? 將數據放置到目的的方法 ? 操作數的數據來源主要有: ? 來自寄存器 ——寄存器模式 ? 來自 指令 ——立即尋址模式 ? 來自存儲器 ——存儲器模式 ?直接尋址 ?直接-偏移量尋址 ?寄存器間接尋址 ?基址-位移量尋址 ?基址-變址尋址 ?帶位移量的基址-變址尋址 寄存器尋址 ?格式 : 寄存器的名稱 ?允許的寄存器:任何寄存器 ?操作數:寄存器中的數據值 ?舉例: ? ADD AX, BX ? MOV AL, ‘A’ ? CS 不能用 MOV 指令改變 ?MOV CS, AX 錯 立即數尋址 ?格式:各種常數值 ?舉例: ? ADD AX, 124 ? ADD AH, 12H 存儲器尋址 ?有效地址:地址是由操作數所決定的,不同的模式決定了不同的地址計算方法 ?直接尋址 ?直接-偏移量尋址(相對直接尋址) ?寄存器間接尋址 ?基址-偏移量尋址 ?基址-變址尋址 ?帶偏移量的基址-變址尋址 TITLE A06IMMED (EXE) Example of immediate operands .MODEL SMALL .STACK 64 。01H MOV BL, TYPE V2 。裝入偏移地址 MOV DATA2, [BX] 39。存儲器之間不能之間傳送 ? MOV ES, 23 39。利用 MPY替代 MUL指令 注意 ? EQU偽操作中的表達式名是不允許重復定義的,而 =偽操作則允許重復定義。End processing INT 21H MAIN ENDP END BEGIN 簡化格式 .文件的匯編連接 ? Assembling and linking . programs ? C:\ml /AT /Fl /Fm Microsoft (R) Macro Assembler Version Copyright (C) Microsoft Corp 19811993. All rights reserved. Assembling: Microsoft (R) Segmented Executable Linker Version Jul 13 1992 Copyright (C) Microsoft Corp 19841992. All rights reserved. Object Modules [.obj]: Run File []: List File []: /m Libraries [.lib]: Definitions File []: 參數: /AT:產生 格式的可執(zhí)行文件 /Fl:產生列表文件 /Fm:產生映像文件 4 DEBUG程序 跟蹤調試 Assembly Language Programming 基本命令的使用 ? DEBUG是我們學習匯編語言的調試工具。Add 0125 to AX MOV DATAZ,AX 。 MAIN PROC NEAR MOV AX,DATAX 。 DATAX DW 215 。Start at end of PSP BEGIN: JMP MAIN 。Store sum in DATAZ MOV AX,4C00H 。Move 0215 to AX ADD AX,DATAY 。Data definitions DATAY DW 125 DATAZ DW ? 。Jump past data 。 ASSUME CS:CODESEG,DS:CODESEG,SS:CODESEG,ES:CODESEG ORG 100H 。 3 編寫 .COM 匯編程序 Assembly Language Programming .COM程序 ? .程序通常較為小巧,最大不超過 64KB,適合作為常駐內存的程序 ?代碼段和數據段在一個段內 . ?堆棧段由裝入程序在段尾自動創(chuàng)建 ?頭 100H為 Program Segment Prex .exe vs. . PSP 堆棧段 數據段 代碼段 ES SS DS CS PSP 代碼段 堆棧段 ES DS CS SS 編寫格式 ? ASSUME將所有段寄存器初始化為代碼段的地址 ? ORG 100H指明第一條指令的地址為 100H偏移量,即 IP=100H ?注意:定義數據的方法,通常程序一開始即定義 TITLE A05COM1 COM program to move and add data CODESEG SEGMENT PARA 39。End of procedure EN
點擊復制文檔內容
化學相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1