汇编网首页登录博客注册
xitxit的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新评论
最新留言
好友圈
文章收藏
友情链接

[2010-10-27 16:20] 7.53 2个任意整数相减

include irvine32.inc
.data
val1 qword 0a2b2a40674981234h
val2 qword 0b010870000234502h
sum dword 3 dup (0)
.code
main proc
mov edi,offset val1       
mov esi,offset val2
mov ebx,offset sum
mov ecx,2
call extended_sub

;display the sum
mov eax,sum+8
call writehex
mov eax,sum+4
call w...
阅读全文 | 评论次数(0) | 浏览次数(451) | 所属类型(Intel汇编语言程序设计)

[2010-10-27 15:55] 7.52 2个任意整数相加

include irvine32.inc
.data
val1 qword 0a2b2a40674981234h
val2 qword 08010870000234502h
sum dword 3 dup (0)
.code
main proc
mov edi,offset val1       
mov esi,offset val2
mov ebx,offset sum
mov ecx,2
call extended_add

;display the sum
mov eax,sum+8
call writehex
mov eax,sum+4
call w...
阅读全文 | 评论次数(0) | 浏览次数(480) | 所属类型(Intel汇编语言程序设计)

[2010-10-05 03:18] test和cmp一个很菜很基础的话题!(转载)

*************************
test属于逻辑运算指令 

功能: 执行BIT与BIT之间的逻辑运算
     测试(两操作数作与运算,仅修改标志位,不回送结果). 
Test对两个参数(目标,源)执行AND逻辑操作,并根据结果设置标志寄存器,结果本身不会保存。EST AX,BX 与 AND AX,BX 命令有相同效果 

语法: TEST r/m,r/m/data
影响标志: C,O,P,Z,S(其中C与O两个标志会被设为0) 

运用举例:
1.Test用来测试一个位,例如寄存器: 

test eax, 100b;          b后缀...
阅读全文 | 评论次数(0) | 浏览次数(401) | 所属类型(X86汇编语言)

[2010-10-04 22:44] 寄存器深入体验之FLAG寄存器

点击查看原图
FLAG寄存器是什么,有什么作用?

FLAG为标志寄存器,是一个16位的,用来放条件码的寄存器。条件码标志是用来记录程序运行结果的状态,就例如你在算加法题,突然遇到了有个位要进位,你就要先记住要进的那个位,然后下一位相加的时候,就把刚才进位数也一齐加上去,这时候你计着那个进位的数的那部分脑袋就充当了FLAG了,当然,实际上还要复杂一点。极为有用,请务必熟读。

 FLAG寄存器详解:

条件码标志是根据有关指令的运行结果,由CPU自动设定的。由于这些状态信息会作为之后的转移指令的条件,所以称做条件码。例如下面一个例子:

cmp EAX,EBX   //对比这两个寄存器里面的...
阅读全文 | 评论次数(0) | 浏览次数(431) | 所属类型(X86汇编语言)

[2010-10-01 16:58] 贪吃蛇

点击查看原图
assume cs:code
code segment
data segment
db '   = up     = down     = right     = left        = quit     J = cheat   -  = speed down   +  = speed up    LEVEL   1'    
data ends

data1 segment
db 128 dup (0)
data1 ends

stack segment
db 128 dup (0)
stack ends
start:
mov ax,0b800h
mov e...
阅读全文 | 评论次数(0) | 浏览次数(540) | 所属类型(默认类型)

[2010-09-29 15:53] 检测按键的扫描码

点击查看原图
;;;;注意NumLock灯的状态
;;;;不同情况下,有些按键的断码是不同的
assume cs:code
stack segment
db 128 dup (0)
stack ends
code segment

start:
mov ax,stack
mov ss,ax
mov sp,128
mov ax,0
mov es,ax
push cs
pop ds
mov di,204h
mov si,offset int9
mov cx,offset int9end-offset int9
cld
rep movsb

push es:[4*9] ...
阅读全文 | 评论次数(0) | 浏览次数(498) | 所属类型(默认类型)

[2010-09-29 03:11] 实验16

assume cs:code
code segment

start:

mov ax,2000h ;2000:0这个地方要比0:200空间大N倍,谁用谁知道
mov es,ax
mov di,0
mov ax,cs
mov ds,ax
mov si,offset ssc
mov cx,offset sse-offset ssc
cld
rep movsb
mov ax,0
mov es,ax
cli
mov word ptr es:[4*7],0
mov word ptr es:[4*7+2],2000h   
sti

mov ax,4c00h
...
阅读全文 | 评论次数(0) | 浏览次数(394) | 所属类型(汇编作业)

[2010-09-28 16:12] 实验15

assume cs:code

stack segment
db 128 dup (0)
stack ends

code segment

start:
mov ax,stack
mov ss,ax
mov sp,128

mov ax,0
mov es,ax

push es:[4*9]
pop es:[0200h]
push es:[4*9+2]
pop es:[0202h]

cli 
mov word ptr es:[4*9],0204h
mov word ptr es:[4*9+2],0
sti

push cs
pop ds ...
阅读全文 | 评论次数(0) | 浏览次数(351) | 所属类型(汇编作业)

[2010-09-28 16:11] 实验14

assume cs:code
code segment
start:
mov bx,0b800h
mov es,bx
mov al,12                     ;设置纵坐标
mov ah,160
mul ah
mov bx,ax
mov si,60                      ;设置横坐标/2,才是结果
mov al,'/'
mov ah,1                               ;设置‘/’颜色
mov es:[bx+si+4],ax
mov es:[bx+si+10],ax
mov al,':'
mov a...
阅读全文 | 评论次数(0) | 浏览次数(525) | 所属类型(汇编作业)

[2010-09-25 18:31] 实验13

assume cs:code
code segment
start:
mov bx,0b800h
mov es,bx
mov al,12                     ;设置纵坐标
mov ah,160
mul ah
mov bx,ax
mov si,60                      ;设置横坐标/2,才是结果
mov al,'/'
mov ah,1                               ;设置‘/’颜色
mov es:[bx+si+4],ax
mov es:[bx+si+10],ax
mov al,':'
mov a...
阅读全文 | 评论次数(0) | 浏览次数(323) | 所属类型(汇编作业)
『 查看更多文章 』