


- [younggay] 咯咯咯咯咯~~ 07/14 14:20
- [younggay] 这个题目确实经典!! 07/14 14:19
- [younggay] 没问题。都学过了,在来弄应该比较顺手喽。 07/14 14:18
- [younggay] OK! 07/14 14:10
- [younggay] 想想,果真好久没见博主了。 07/14 14:09
- [游客] 博主 如果把源程序中的 start 去了;and start改成end 你再从新编译,连接 03/22 14:56
- [游客] 不知道 03/19 20:49
- [游客] C中的指针很费神哟。不过,把概念和汇编中的内存地址、类型结合考虑一下,可能会有帮助。 03/19 20:15
- [游客] 这是干什么啊? 03/19 17:23
- [coco] 坚持 03/14 16:56
- [kevin812566059] 师姐: 你好!看了你的博客,的确是学了不少的汇编。我现在也想学,由于老师让我们做一个软件, 12/27 18:34
[2009-07-12 21:22] 显示子函数 showMem
此为 为课程1写的显示子函数 输入参数为ax
可以扩展参数:
;; 显示 子函数
;; 参数 要显示内容的段地址ax,段数据以0结尾
showMem:push es
push si
push di
push bp
push bx
push cx
push ax
mov ax,0B800H ;显存地址
mov es,ax
mov si,210H ;第几行
mov di,0 ;第几列
add si,di
mov dh,01000010B ;设置颜色
add di,di
pop ax
mo...
可以扩展参数:
;; 显示 子函数
;; 参数 要显示内容的段地址ax,段数据以0结尾
showMem:push es
push si
push di
push bp
push bx
push cx
push ax
mov ax,0B800H ;显存地址
mov es,ax
mov si,210H ;第几行
mov di,0 ;第几列
add si,di
mov dh,01000010B ;设置颜色
add di,di
pop ax
mo...
阅读全文 |
评论次数(1) |
浏览次数(1422) |
所属类型(代码区)
[2009-07-12 19:56] 第九章根据材料编程
assume cs:code,ds:data1
data1 segment
db 'I love you, Wjf!'
db 30 dup (0)
data1 ends
code segment
start: mov ax, data1
mov ds,ax
mov al,01000010B
push cx
push bx
push bp
mov cx,15
mov bx,0
mov bp,0
s: mov ah,[bp]
mov byte ptr [bx+16],ah
mov byte ptr [bx+17],al
...
data1 segment
db 'I love you, Wjf!'
db 30 dup (0)
data1 ends
code segment
start: mov ax, data1
mov ds,ax
mov al,01000010B
push cx
push bx
push bp
mov cx,15
mov bx,0
mov bp,0
s: mov ah,[bp]
mov byte ptr [bx+16],ah
mov byte ptr [bx+17],al
...
阅读全文 |
评论次数(1) |
浏览次数(1302) |
所属类型(代码区)
[2009-07-12 17:07] 第8章的奇怪问题
很经典的问题.答案:jmp short 标号是靠位移跳转...
阅读全文 |
评论次数(1) |
浏览次数(1355) |
所属类型(代码区)
[2008-03-07 14:09] 第10章 10.11涉及的代码
assume cs:code
data segment
db 'yjjwjf'
data ends
code segment
start:
mov ax,data
mov ds,ax
mov si,0
mov cx,6
call capital
mov ax,4c00h
int 21h
capital:
and [si],11011111b
inc si
loop capital
ret
code ends
end start
嘿嘿。。自已看题目然后写的,和书上的很象!^^...
data segment
db 'yjjwjf'
data ends
code segment
start:
mov ax,data
mov ds,ax
mov si,0
mov cx,6
call capital
mov ax,4c00h
int 21h
capital:
and [si],11011111b
inc si
loop capital
ret
code ends
end start
嘿嘿。。自已看题目然后写的,和书上的很象!^^...
阅读全文 |
评论次数(0) |
浏览次数(453) |
所属类型(代码区)
[2008-03-07 13:47] 第10章 10.10中涉及的代码
assume cs:code
data segment
dw 1,2,3,4,5,6,7,8
dd 8 dup(0)
data ends
code segment
start:
mov ax,data
mov ds,ax
mov si,0
mov di,16
mov cx,8
s:
mov bx,[si]
call fun
mov [di],ax
mov [di+2],dx
add si,2
add di,4
loop s
mov ax,4c00h
int 21h
fun:
mov ax,bx
mul bx
mul bx
ret ...
data segment
dw 1,2,3,4,5,6,7,8
dd 8 dup(0)
data ends
code segment
start:
mov ax,data
mov ds,ax
mov si,0
mov di,16
mov cx,8
s:
mov bx,[si]
call fun
mov [di],ax
mov [di+2],dx
add si,2
add di,4
loop s
mov ax,4c00h
int 21h
fun:
mov ax,bx
mul bx
mul bx
ret ...
阅读全文 |
评论次数(3) |
浏览次数(512) |
所属类型(代码区)
[2008-03-02 03:28]
需要吸取教训的代码
;si, bx
assume cs:code,ds:data
data segment
; 年份
db '1975','1976','1977','1978','1979','1980','1981','1982','1983','1984','1985'
db '1986','1987','1988','1989','1990','1991','1992','1993','1994','1995'
; 收入
dd 161,162,163,164,165,166,167,168,169,1701,170123,170...
assume cs:code,ds:data
data segment
; 年份
db '1975','1976','1977','1978','1979','1980','1981','1982','1983','1984','1985'
db '1986','1987','1988','1989','1990','1991','1992','1993','1994','1995'
; 收入
dd 161,162,163,164,165,166,167,168,169,1701,170123,170...
阅读全文 |
评论次数(7) |
浏览次数(729) |
所属类型(代码区)
[2008-03-02 00:53] 第8章 问题8.1
question:算出data 段中的第一个数除以第二个数,将所得的商保存在第三个数据的存储单元
==================MyCode======================
assume cs:code,ds:data
data segment
dd 100001
dw 100
dw 0
data ends
code segment
start:
mov ax,data
mov ds,ax
mov bx,0d
mov ax,[bx]
mov dx,[bx+2]
add bx,4d
div word ptr [bx]...
==================MyCode======================
assume cs:code,ds:data
data segment
dd 100001
dw 100
dw 0
data ends
code segment
start:
mov ax,data
mov ds,ax
mov bx,0d
mov ax,[bx]
mov dx,[bx+2]
add bx,4d
div word ptr [bx]...
阅读全文 |
评论次数(3) |
浏览次数(408) |
所属类型(代码区)
[2008-03-02 00:00] 第8章中关于除法计算
在dos中用debug a 命 令写的代码计算100001/100
mov dx,1
mov ax,86a1
mov bx,64;此为100的16进制表示
div bx
结果如上图!
被除数为32位,除数必要16位,结果中商保存在ax中,余数在dx中
被除数为16位,除数必要8位,结果中商保存在al中,余数在ah中...
mov dx,1
mov ax,86a1
mov bx,64;此为100的16进制表示
div bx
结果如上图!
被除数为32位,除数必要16位,结果中商保存在ax中,余数在dx中
被除数为16位,除数必要8位,结果中商保存在al中,余数在ah中...
阅读全文 |
评论次数(2) |
浏览次数(476) |
所属类型(代码区)
[2008-03-01 23:41] 第8章 关于修改公司信息的代码段
mov ax,seg
mov ds,ax
mov bx,60h
mov word ptr [bx].0ch,38;dec.pm=38
add word ptr [bx].0eh,70;dec.sr=dec.sr + 70
mov si,0;i = 0
mov byte ptr [bx].10h[si],'V';dec.cp[i] = 'V'
inc si;i++
mov byte ptr [bx].10h[si],'A';dec.cp[i] = 'A'
inc si;i++
mov byte ptr [bx].10h[si],'X';dec.cp[i] = 'X' ...
mov ds,ax
mov bx,60h
mov word ptr [bx].0ch,38;dec.pm=38
add word ptr [bx].0eh,70;dec.sr=dec.sr + 70
mov si,0;i = 0
mov byte ptr [bx].10h[si],'V';dec.cp[i] = 'V'
inc si;i++
mov byte ptr [bx].10h[si],'A';dec.cp[i] = 'A'
inc si;i++
mov byte ptr [bx].10h[si],'X';dec.cp[i] = 'X' ...
阅读全文 |
评论次数(2) |
浏览次数(414) |
所属类型(代码区)
[2008-03-01 00:13] 第7章 问题7.9
question:(自改)
前data segment中的第个单词的前5个字母变为大写
My Code:
assume cs:code,ss:stack,ds:data
stack segment
dw 0,0,0,0,0,0,0,0
stack ends
data segment
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
data ends
code segment
sta...
前data segment中的第个单词的前5个字母变为大写
My Code:
assume cs:code,ss:stack,ds:data
stack segment
dw 0,0,0,0,0,0,0,0
stack ends
data segment
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
data ends
code segment
sta...
阅读全文 |
评论次数(3) |
浏览次数(459) |
所属类型(代码区)