Where is my way?

 

2011年8月13日

汇编学习笔记(13)MOVZA、MOVSX,XCHG练习

摘要: TITLE Data Transfer ExampleINCLUDE irvine32.inc.dataval1 WORD 1000hval2 WORD 2000harrayB BYTE 10h,20h,30h,40h,50harrayW WORD 100H,200H,300HarrayD DWORD 100000h,20000H.codemain PROC ;MOVZX(move with zero-extend) mov bx,0A69Bh movzx,eax,bx ;0000A69BH movzx edx,bl ;00000009H movzx,cx,bl ;0009H ;MOVSX(. 阅读全文

posted @ 2011-08-13 00:13 ManLoveGirls 阅读(398) 评论(0) 推荐(0)

2011年8月12日

汇编学习(12)LAHF、SAHF、XCHG

摘要: LAHF(load status flags into AH) 指令将EFLAGS低字节复制进AH中 受影响Flags:SF,ZF,AF,PF,CF.datasaveFalgs BYTE ? .codelahfmov saveflags,ahSAHF(store AH into status flags) 把AH寄存器的值复制到EFLAGS低字节中mov ah,saveflagssahf XCHG(exchange data) 交换两个操作数的内容XCHG reg,regXCHG reg ,memXCHG mem,regXCHG不用能立即数操作数,如果要交换必须使用一个寄存器作临时变量mov. 阅读全文

posted @ 2011-08-12 23:52 ManLoveGirls 阅读(5453) 评论(0) 推荐(0)

汇编学习笔记(11)MOVZX,MOVSX

摘要: MOVZX (move with zero-extend) 零扩展传送 ,适用于无符号整数,将源操作数内容复制到目标操作数,用0扩展到16位/32 位,适用于无符号整数mov bl,0010010b ;bl=0010010movzx ax,bl ;ax=0000000 0010010MOVSX (move with sign-extend )符号位扩展 适用于有符号整数,将源操作数内容复到目标操作数,用较小操作数的最高位填充所有扩展位mov bl,100010b ;bl=100010bmovsx ax,bl ;ax=11111111 100010bmov bx,0A69H ;bx=0A69BH 阅读全文

posted @ 2011-08-12 23:40 ManLoveGirls 阅读(1447) 评论(0) 推荐(0)

2011年8月11日

汇编学习笔记-[移位]

摘要: 移位指令是计算机逻辑功能的一部分,可以完成以下操作:<ul> <li>fdfdf</li></ul> 阅读全文

posted @ 2011-08-11 22:07 ManLoveGirls 阅读(174) 评论(0) 推荐(0)

2011年8月7日

跳转指令-LOOP

摘要: page 60,132TITLE A0405Loop(EXE) LOOP跳转指令 .MODEL SMALL .STACK 64 .DATA ORG 100H ;规定程序的起始地址 A10MAIN PROC NEAR MOV AX,00 MOV BX,00 MOV DX,01 MOV CX,10 ;循环次数 A20: ADD AX,01 ADD BX,AX SHL DX,1 ;左移一位 LOOP A20 ;跳转到A20,cx为0时 退出 LOOP指令执行时自动将cx =cx-1 MOV AX,4C00H INT 21H A10MAIN endp 阅读全文

posted @ 2011-08-07 15:23 ManLoveGirls 阅读(518) 评论(0) 推荐(0)

跳转指令-JMP

摘要: page 60,132TITLE A0405Jump(EXE) JMP跳转指令.MODEL SMALL.STACK 64.DATAORG 100H ;规定程序的起始地址A10MAIN PROC NEARMOV AX,00MOV BX,00MOV CX,1A20: ADD AX,01ADD BX,AXSHL CX,1 ;左移一位JMP A20 ;跳转到A20A10MAIN endpjmp格式[label:] jmp short/near/far/address跳转距离跟声明的proc short/near/far 有关 阅读全文

posted @ 2011-08-07 13:55 ManLoveGirls 阅读(474) 评论(0) 推荐(0)

短地址,近地址,远地址

摘要: 1.短地址: 偏移范围-127~1282.近地址: 偏移范围-32678~32677 在同一段内3.远地址: 32位偏移地址,可以另一段中 阅读全文

posted @ 2011-08-07 13:37 ManLoveGirls 阅读(233) 评论(0) 推荐(0)

SUB,ADD指令进行立即数操作笔记

摘要: page 60,132TITLE A0404IMMED(EXE) 立即数操作 .MODEL SMALL ;存储模型 .STACK 64 ;栈空间大小 .DATA ;数据段 DB 'Immediate Values' ;字符串BYTEFLD DB 150 ;字节 8位 0~255WORDFLD DW 300 ;字 16位 255*255 0~65535DWDFLD DD 0 ;双字 32位 65535*65535.386 .CODEMAIN PROC FAR MOV AX,@data MOV DS,AX MOV CX,325 ADD CX,150 SUB BYTEFLD,50 M 阅读全文

posted @ 2011-08-07 12:45 ManLoveGirls 阅读(1015) 评论(0) 推荐(0)

2011年8月6日

跳转指令JNZ(jmp not equal)

摘要: TITLE A06MOVE (EXE) Repetitive move operations.MODEL SMALL.STACk 64;---------------------------------------------------------------------- .DATAHEADNG1 DB 'InterTech'HEAdNG2 DB 9 DUP('*'),'$'.CODEA10MAIN PROC FARMOV AX,@data ;初始化数据段MOV DS,AX ;MOV ES,AX MOV CX,09 ;循环次数LEA SI,H 阅读全文

posted @ 2011-08-06 18:00 ManLoveGirls 阅读(7986) 评论(0) 推荐(0)

SEGMENT伪指令说明

摘要: 语法:segment-name SEGMENT [align] [combine] ['class']segment-nam ends [align]选项指明段开始边界,典型要求是para,它使段定位在在小段的边界。起码地址正好被16/10H整除,可以省略,默认为para[combine]组合 决定本段是否要和其它段组合在一起,组合类型:STACK,COMMON,PUBLIC,['Class']连接时用于相关段组合在一起,如代码段‘code’,数据段 'Data',堆栈段'Stack' PAGE 60,132 ;页面大小TITLE 阅读全文

posted @ 2011-08-06 16:08 ManLoveGirls 阅读(2196) 评论(0) 推荐(0)

导航