- [younggay] 20? 那个20? 01/21 15:05
- [martian] 博主辛苦了! 11/24 13:43
- [acool] 先存下 看看O(∩_∩)O哈哈~ 11/22 12:30
- [acool] 不错,踩踩;) 11/22 12:27
- [tomato] 收藏一下,好好看看,扫扫盲。 11/21 20:01
- [younggay] 程序正确固然重要,必要的地方写注释也是很必要的。要不看的人脑袋可就大了。呵呵 fighting ! 11/21 14:47
- [younggay] 就提一点要求: 哥儿们,加点注释把,(*^__^*)...嘻嘻 11/21 14:37
- [lwbfq] 有点糊涂。 11/21 14:26
- [lwbfq] 有点糊涂。 11/21 14:26
- [younggay] 嗯。不错,不过要是关键代码部分加上注释就更好了。而且加注释也是一个成熟的编程人员的良好习惯。 11/21 14:23
- [h.goood] 汇编作业在哪里做?我怎么没找到? 11/24 12:32
[2009-01-03 21:23] 我按教程的方法编译连接出1.exe
可是没有在栈段里找到20,哪位完成实验的大大说明一下,感激不尽。...
阅读全文 |
评论次数(1) |
浏览次数(1107) |
所属类型(汇编作业)
[2008-11-24 11:55] 80*86伪指令
word版下载
http://assembly.ys168.com
8086伪指令(汇编语言程序格式)
汇编语言程序中的语句可以由指令、伪指令和宏指令组成。上一章我们介绍了8086指令系统中的6类指令,每一条指令都对应一种CPU操作。
伪指令又称为伪操作,它是在对源程序汇编期间由汇编程序处理的操作,它们可以完成如处理器选择、定义程序模式、定义数据、分配存储区、指示程序结束等功能。
宏指令是由用户按照宏定义格式编写的一段程序,其中语句可以是指令、伪指令,甚至是已定义的宏指令。宏指令将在第七章中介绍。
伪指令和指令的区别在于,每一条指令必须生成机器代码,然后在程序运行期...
http://assembly.ys168.com
8086伪指令(汇编语言程序格式)
汇编语言程序中的语句可以由指令、伪指令和宏指令组成。上一章我们介绍了8086指令系统中的6类指令,每一条指令都对应一种CPU操作。
伪指令又称为伪操作,它是在对源程序汇编期间由汇编程序处理的操作,它们可以完成如处理器选择、定义程序模式、定义数据、分配存储区、指示程序结束等功能。
宏指令是由用户按照宏定义格式编写的一段程序,其中语句可以是指令、伪指令,甚至是已定义的宏指令。宏指令将在第七章中介绍。
伪指令和指令的区别在于,每一条指令必须生成机器代码,然后在程序运行期...
阅读全文 |
评论次数(1) |
浏览次数(1746) |
所属类型(汇编作业)
[2008-11-18 18:27] 实验十六
assume cs:code
code segment
start:
mov ax,0
mov es,ax
mov ax,cs
mov ds,ax
mov di,200h
mov si,offset int7c
mov cx,offset int7cend-offset int7c
cld
rep movsb
mov word ptr es:[1F0H],200H
mov word ptr es:[1F2H],0H
mov ax,4c0...
code segment
start:
mov ax,0
mov es,ax
mov ax,cs
mov ds,ax
mov di,200h
mov si,offset int7c
mov cx,offset int7cend-offset int7c
cld
rep movsb
mov word ptr es:[1F0H],200H
mov word ptr es:[1F2H],0H
mov ax,4c0...
阅读全文 |
评论次数(1) |
浏览次数(1006) |
所属类型(汇编作业)
[2008-11-18 16:14] 实验15
assume cs:code
stack segment
db 128 dup (0)
stack ends
code segment
start:mov ax,stack
mov ss,ax
mov sp,128
push cs
pop ds
mov ax,0
mov es,ax
mov si,offset int9
mov di,204h
mov cx,offset int9end-offset int9
cld
rep mov...
stack segment
db 128 dup (0)
stack ends
code segment
start:mov ax,stack
mov ss,ax
mov sp,128
push cs
pop ds
mov ax,0
mov es,ax
mov si,offset int9
mov di,204h
mov cx,offset int9end-offset int9
cld
rep mov...
阅读全文 |
评论次数(1) |
浏览次数(814) |
所属类型(汇编作业)
[2008-11-17 16:50] 实验十四
assume cs:code,ds:data
data segment
db 9,8,7,4,2,0
data ends
code segment
start:
mov ax,data
mov ds,ax
mov si,0
mov di,0
s:
mov al,[si]
mov cl,al
mov ch,0
push cx
out 70h,al
in al,71H
mov ah,al
mov cl,4
shr ah,cl
and al,00001111b
add ah,30h
add al,30h
mov bx,0b800h
mov es,bx ...
data segment
db 9,8,7,4,2,0
data ends
code segment
start:
mov ax,data
mov ds,ax
mov si,0
mov di,0
s:
mov al,[si]
mov cl,al
mov ch,0
push cx
out 70h,al
in al,71H
mov ah,al
mov cl,4
shr ah,cl
and al,00001111b
add ah,30h
add al,30h
mov bx,0b800h
mov es,bx ...
阅读全文 |
评论次数(1) |
浏览次数(1062) |
所属类型(汇编作业)
[2008-11-15 13:22] 实验十三,第一个实验的两种思路
assume cs:code
code segment
start:
mov ax,0
mov es,ax
mov ax,cs
mov ds,ax
mov di,200h
mov si,offset show_str
mov cx,offset showend-offset show_str
cld
rep movsb
mov word ptr es:[1F0H],200H
mov word ptr es:[1F2H],0H
...
code segment
start:
mov ax,0
mov es,ax
mov ax,cs
mov ds,ax
mov di,200h
mov si,offset show_str
mov cx,offset showend-offset show_str
cld
rep movsb
mov word ptr es:[1F0H],200H
mov word ptr es:[1F2H],0H
...
阅读全文 |
评论次数(1) |
浏览次数(922) |
所属类型(汇编作业)
[2008-11-15 11:32] 实验十二
assume cs:code
code segment
start:
mov ax,cs
mov ds,ax
mov ax,0
mov es,ax
mov si,offset do0
mov di,200H
mov cx,offset do0end-offset do0
cld
rep movsb
mov word ptr es:[0],200H
mov word ptr es:[2],0H
int 0H
mov ax,4c00h
int 21h
do0:
push ax
push cx
push ds
push es
push si
push...
code segment
start:
mov ax,cs
mov ds,ax
mov ax,0
mov es,ax
mov si,offset do0
mov di,200H
mov cx,offset do0end-offset do0
cld
rep movsb
mov word ptr es:[0],200H
mov word ptr es:[2],0H
int 0H
mov ax,4c00h
int 21h
do0:
push ax
push cx
push ds
push es
push si
push...
阅读全文 |
评论次数(1) |
浏览次数(501) |
所属类型(汇编作业)
[2008-11-14 22:34] 80*86汇编指令手册
汇编指令手册
一、数据传输指令
它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据.
1. 通用数据传送指令.
MOV 传送字或字节.
MOVSX 先符号扩展,再传送.
MOVZX 先零扩展,再传送.
PUSH 把字压入堆栈.
POP 把字弹出堆栈.
PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.
POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.
PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈...
一、数据传输指令
它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据.
1. 通用数据传送指令.
MOV 传送字或字节.
MOVSX 先符号扩展,再传送.
MOVZX 先零扩展,再传送.
PUSH 把字压入堆栈.
POP 把字弹出堆栈.
PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.
POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.
PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈...
阅读全文 |
评论次数(1) |
浏览次数(296) |
所属类型(汇编作业)
[2008-11-14 19:40] 实验十一
assume cs:codesg
datasg segment
db"Beginner's All-purpose Symbolic Instruction Code.",0
datasg ends
codesg segment
begin:
mov ax,datasg
mov ds,ax
mov si,0
call letterc
exit:mov dh,13
mov dl,0
call show_str
mov ax,4c00h
int 21h
show_str:
push cx
push dx
push b...
datasg segment
db"Beginner's All-purpose Symbolic Instruction Code.",0
datasg ends
codesg segment
begin:
mov ax,datasg
mov ds,ax
mov si,0
call letterc
exit:mov dh,13
mov dl,0
call show_str
mov ax,4c00h
int 21h
show_str:
push cx
push dx
push b...
阅读全文 |
评论次数(1) |
浏览次数(695) |
所属类型(汇编作业)
[2008-11-14 13:24] 前十章错误总结
前面十章的学习过程中,犯了不少错误,有的错误还不止犯了一次,有必要总结一下。
一、语法错误
直接用立即数给段寄存器赋值
两个操作数之间漏写逗号
十六进制数没有加H
首位是字母的十六进制数没有加0
没有添加段结束和程序结束指令
将寄存器di误写为bi
忘记加标号
二、逻辑错误
在call和ret之间入栈的数没有完全出栈,导致ret返回错误
在子程序中用到的寄存器没有保存,导致返回后改变原寄存器的值
在反复使用一个寄存器时,没有用栈或其他寄存器保存该寄存器的值,导致原来的值丢失
使用pop取值时命令时,没有注意到栈顶数据的变化,导致取到错误的值
在复杂和循环和跳转中,没...
一、语法错误
直接用立即数给段寄存器赋值
两个操作数之间漏写逗号
十六进制数没有加H
首位是字母的十六进制数没有加0
没有添加段结束和程序结束指令
将寄存器di误写为bi
忘记加标号
二、逻辑错误
在call和ret之间入栈的数没有完全出栈,导致ret返回错误
在子程序中用到的寄存器没有保存,导致返回后改变原寄存器的值
在反复使用一个寄存器时,没有用栈或其他寄存器保存该寄存器的值,导致原来的值丢失
使用pop取值时命令时,没有注意到栈顶数据的变化,导致取到错误的值
在复杂和循环和跳转中,没...
阅读全文 |
评论次数(1) |
浏览次数(358) |
所属类型(汇编作业)