- [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
[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) |
浏览次数(297) |
所属类型(汇编作业)
[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) |
浏览次数(696) |
所属类型(汇编作业)
[2008-11-14 13:24] 前十章错误总结
前面十章的学习过程中,犯了不少错误,有的错误还不止犯了一次,有必要总结一下。
一、语法错误
直接用立即数给段寄存器赋值
两个操作数之间漏写逗号
十六进制数没有加H
首位是字母的十六进制数没有加0
没有添加段结束和程序结束指令
将寄存器di误写为bi
忘记加标号
二、逻辑错误
在call和ret之间入栈的数没有完全出栈,导致ret返回错误
在子程序中用到的寄存器没有保存,导致返回后改变原寄存器的值
在反复使用一个寄存器时,没有用栈或其他寄存器保存该寄存器的值,导致原来的值丢失
使用pop取值时命令时,没有注意到栈顶数据的变化,导致取到错误的值
在复杂和循环和跳转中,没...
一、语法错误
直接用立即数给段寄存器赋值
两个操作数之间漏写逗号
十六进制数没有加H
首位是字母的十六进制数没有加0
没有添加段结束和程序结束指令
将寄存器di误写为bi
忘记加标号
二、逻辑错误
在call和ret之间入栈的数没有完全出栈,导致ret返回错误
在子程序中用到的寄存器没有保存,导致返回后改变原寄存器的值
在反复使用一个寄存器时,没有用栈或其他寄存器保存该寄存器的值,导致原来的值丢失
使用pop取值时命令时,没有注意到栈顶数据的变化,导致取到错误的值
在复杂和循环和跳转中,没...
阅读全文 |
评论次数(1) |
浏览次数(358) |
所属类型(汇编作业)
[2008-11-14 11:45] 课程设计1
assume cs:code
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
db '1993','1994','1995'
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,590827,803530,1183000,1843000,27...
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
db '1993','1994','1995'
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,590827,803530,1183000,1843000,27...
阅读全文 |
评论次数(1) |
浏览次数(388) |
所属类型(汇编作业)
[2008-11-13 21:09] 实验十
assume cs:code
data segment
db 60 dup (0)
data ends
code segment
start:mov ax,12666
mov bx,data
mov ds,bx
mov ss,bx
mov sp,40H
mov si,0
call dtoc
jmp short s1
dtoc:
push di
mov di,0
s:mov dx,0
mov cx,10 ...
data segment
db 60 dup (0)
data ends
code segment
start:mov ax,12666
mov bx,data
mov ds,bx
mov ss,bx
mov sp,40H
mov si,0
call dtoc
jmp short s1
dtoc:
push di
mov di,0
s:mov dx,0
mov cx,10 ...
阅读全文 |
评论次数(1) |
浏览次数(451) |
所属类型(汇编作业)
[2008-11-11 14:07] 实验九
先做计算
B800
780-81F 7C0-7E0 第12行中间
820-8BF 860-880 第13行中间
8C0-95F 900-920 第14行中间
welcome to masm! 绿色 00000010 2H
welcome to masm!绿底红色 00100100 24H
welcome to masm!白底蓝色 01110001 71H
assume cs:code,ds:data
data segment
db 'welcome to masm!'
data ends
code segment
start...
B800
780-81F 7C0-7E0 第12行中间
820-8BF 860-880 第13行中间
8C0-95F 900-920 第14行中间
welcome to masm! 绿色 00000010 2H
welcome to masm!绿底红色 00100100 24H
welcome to masm!白底蓝色 01110001 71H
assume cs:code,ds:data
data segment
db 'welcome to masm!'
data ends
code segment
start...
阅读全文 |
评论次数(1) |
浏览次数(410) |
所属类型(汇编作业)
[2008-11-10 20:44] 实验七
assume cs:code
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
db '1993','1994','1995'
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,590827,803530,1183000,1843000,27...
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
db '1993','1994','1995'
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,590827,803530,1183000,1843000,27...
阅读全文 |
评论次数(1) |
浏览次数(341) |
所属类型(汇编作业)
[2008-11-10 10:55] 关于 ptr 的疑问
mov [1000],1 是非法的
而mov byte ptr [1000]却是合法的
内存里的数据要用寄存器传输
那么cpu怎么样来处理mov byte ptr[1000]的呢...
而mov byte ptr [1000]却是合法的
内存里的数据要用寄存器传输
那么cpu怎么样来处理mov byte ptr[1000]的呢...
阅读全文 |
评论次数(1) |
浏览次数(309) |
所属类型(汇编作业)
[2008-11-10 10:23] 实验六 将db中字母前4位转换为大写
assume cs:codesg,ss:stacksg,ds:datasg
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
datasg segment
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
datasg ends
codesg segment
start:
mov ax,stacksg
mov ss,ax
mov sp,16
mov ax,datasg
mov ds,ax
m...
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
datasg segment
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
datasg ends
codesg segment
start:
mov ax,stacksg
mov ss,ax
mov sp,16
mov ax,datasg
mov ds,ax
m...
阅读全文 |
评论次数(1) |
浏览次数(297) |
所属类型(汇编作业)