assume cs:code
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982'
db '1983','1984','1985','1986','1987','1988','1989','1990'
db '1991','1992','1993','1994','1995'
dd 16,22,382,1356,2390,8000,16000,24486
dd 50065,97479,140417,197514,345980,590827,803...
[2012-11-21 14:32] 第10章 课程设计1
阅读全文 |
评论次数(0) |
浏览次数(165) |
所属类型(汇编作业)
[2012-11-20 16:40] 第10章 实验10 编写子程序
assume cs:code
data segment
db 'Welcome to masm!',0
data ends
numberdata segment
dw 123,12666,1,8,3,38
numberdata ends
code segment
start:
;测试显示函数
mov dh,8
mov dl,3
mov cl,2
mov ax,data
mov ds,ax
mov si,0
call show_str
;测试除法
mov ax,0FFFFH
mov dx...
data segment
db 'Welcome to masm!',0
data ends
numberdata segment
dw 123,12666,1,8,3,38
numberdata ends
code segment
start:
;测试显示函数
mov dh,8
mov dl,3
mov cl,2
mov ax,data
mov ds,ax
mov si,0
call show_str
;测试除法
mov ax,0FFFFH
mov dx...
阅读全文 |
评论次数(0) |
浏览次数(180) |
所属类型(汇编作业)
[2012-11-20 10:25] 第10章 检测点10.5(2)的解析
assume cs:codesg
stack segment
dw 8 dup (0)
stack ends
codesg segment
start:
mov ax,stack
mov ss,ax
mov sp,16
mov word ptr ss:[0],offset s
mov ss:[2],cs
call dword ptr ss:[0]
nop
s:
mov ax,offset s
sub ax,ss:[0cH]
mov bx,cs
sub bx,ss:[0eH]
mov ax,4c00h
int 21...
stack segment
dw 8 dup (0)
stack ends
codesg segment
start:
mov ax,stack
mov ss,ax
mov sp,16
mov word ptr ss:[0],offset s
mov ss:[2],cs
call dword ptr ss:[0]
nop
s:
mov ax,offset s
sub ax,ss:[0cH]
mov bx,cs
sub bx,ss:[0eH]
mov ax,4c00h
int 21...
阅读全文 |
评论次数(0) |
浏览次数(175) |
所属类型(汇编作业)
[2012-11-19 15:42] 第9章 实验9 根据材料编程
assume cs:codesg,ds:datasg
datasg segment
db 'welcome to masm!'
datasg ends
color segment
db 00000010B ;黑底绿字
db 00100100B ;绿底红字
db 01110001B ;白底蓝字
color ends
stack segment
dw 0,0,0,0, 0,0,0,0
stack ends
codesg segment
start:
mov ax,stack
mov ss,ax
mov ...
datasg segment
db 'welcome to masm!'
datasg ends
color segment
db 00000010B ;黑底绿字
db 00100100B ;绿底红字
db 01110001B ;白底蓝字
color ends
stack segment
dw 0,0,0,0, 0,0,0,0
stack ends
codesg segment
start:
mov ax,stack
mov ss,ax
mov ...
阅读全文 |
评论次数(0) |
浏览次数(185) |
所属类型(汇编作业)
[2012-11-19 12:04] 第9章 转移指令的原理
可以修改IP,或同时修改CS和IP的指令统称为转移指令。
段内转移只修改IP,分为短转移和近转移。
转移指令可以分为:无条件转移指令,条件转移指令,循环指令,过程,中断这五类。
offset取得段偏移地址。
jmp为无条件转移指令,jmp shor只修改IP,范围为-128~127.
注意jmp在只修改IP时,使用的是相对地址,所以同一个指令在不同地址执行起来转移到的地方是不一样的。
jmp far ptr实现段间转移(远转移),同时修改CS和IP。
可以使用jmp 16位reg实现转移。
可以使用jmp word...
段内转移只修改IP,分为短转移和近转移。
转移指令可以分为:无条件转移指令,条件转移指令,循环指令,过程,中断这五类。
offset取得段偏移地址。
jmp为无条件转移指令,jmp shor只修改IP,范围为-128~127.
注意jmp在只修改IP时,使用的是相对地址,所以同一个指令在不同地址执行起来转移到的地方是不一样的。
jmp far ptr实现段间转移(远转移),同时修改CS和IP。
可以使用jmp 16位reg实现转移。
可以使用jmp word...
阅读全文 |
评论次数(0) |
浏览次数(201) |
所属类型(默认类型)
[2012-11-16 15:27] 第8章 实验7 24行的解法
assume cs:code
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983','1984','1985','1986','1987','1988','1989','1990','1991','1992','1993','1994','1995'
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514,345980,590827,803530,1183000,1843000,2759000,3...
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983','1984','1985','1986','1987','1988','1989','1990','1991','1992','1993','1994','1995'
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514,345980,590827,803530,1183000,1843000,2759000,3...
阅读全文 |
评论次数(0) |
浏览次数(181) |
所属类型(汇编作业)
[2012-11-16 11:26] 第8章 数据处理的两个基本问题
本章重点问题:处理的数据放在什么地方;要处理的数据有多长。
1.[bx]的基址是ds,[bp]的基址是ss。所以bx,bp不能在一起做偏移的寻址,si和di默认基址是ds,但若和bp一起使用则基址为ss。另外,si+-di不能在没有bx或bp的时候作运算。
2.指令执行前数据可以在3个地方:内存,寄存器,指令缓冲器。
3.数据位置表达方式:立即数,寄存器,段地址+偏移地址
4.五种寻址方式:直接,寄存器间接,寄存器相对,基址变址,相对基址变址。
5.指令要处理的数据长度由db,dw,dd指定,push和pop是固定对dw操作的。
6....
1.[bx]的基址是ds,[bp]的基址是ss。所以bx,bp不能在一起做偏移的寻址,si和di默认基址是ds,但若和bp一起使用则基址为ss。另外,si+-di不能在没有bx或bp的时候作运算。
2.指令执行前数据可以在3个地方:内存,寄存器,指令缓冲器。
3.数据位置表达方式:立即数,寄存器,段地址+偏移地址
4.五种寻址方式:直接,寄存器间接,寄存器相对,基址变址,相对基址变址。
5.指令要处理的数据长度由db,dw,dd指定,push和pop是固定对dw操作的。
6....
阅读全文 |
评论次数(0) |
浏览次数(185) |
所属类型(默认类型)
[2012-11-16 09:34] 第7章 更灵活的定位内存地址的方法
这章增加了一些常用的指令使用方法,但没有小结,我就自己小结一下。
1.and和or,用于位的与或,是一个很基础的逻辑操作用法,一定要灵活掌握。像(n+40H-1)&~(40H-1)和n&~(40H-1)是什么意思应该熟悉。
2.使用逻辑操作实现大小写的转换
3.[bx+idata]来指明一个内存单元,在这里,我认为这个操作既然是一条指令,那么中间就不应该有中断发生的,但bx+idata这个地址结果是要经过计算的,取地址的器件取的时候是肯定需要计算的(或者先偏移bx再偏移idata,终究是要两次),但这个过程不会被中断?我表示有点疑问。
4.数组的处理无非...
1.and和or,用于位的与或,是一个很基础的逻辑操作用法,一定要灵活掌握。像(n+40H-1)&~(40H-1)和n&~(40H-1)是什么意思应该熟悉。
2.使用逻辑操作实现大小写的转换
3.[bx+idata]来指明一个内存单元,在这里,我认为这个操作既然是一条指令,那么中间就不应该有中断发生的,但bx+idata这个地址结果是要经过计算的,取地址的器件取的时候是肯定需要计算的(或者先偏移bx再偏移idata,终究是要两次),但这个过程不会被中断?我表示有点疑问。
4.数组的处理无非...
阅读全文 |
评论次数(0) |
浏览次数(184) |
所属类型(默认类型)
[2012-11-16 09:15] 问题7.9 将datasg段中每个单词的前4个字母改为大写字母
assume cs:codesg,ds:datasg
datasg segment
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
datasg ends
stack segment
dw 0,0,0,0, 0,0,0,0
stack ends
codesg segment
start:
mov ax,datasg
mo...
datasg segment
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
datasg ends
stack segment
dw 0,0,0,0, 0,0,0,0
stack ends
codesg segment
start:
mov ax,datasg
mo...
阅读全文 |
评论次数(0) |
浏览次数(335) |
所属类型(汇编作业)
[2012-11-15 11:28] 第6章 实验5 第6题 疑问
以下程序执行起来出了一个我无法解析的问题。循环执行到cx=3时,add bx,2执行后居然出现乱跳转的情况,目前还没搞清楚到底怎么一回事。
assume cs:code
a segment
dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffh
a ends
b segment
dw 0,0,0,0,0,0,0,0
b ends
code segment
start:
mov ax,b
mov ss,ax
mov ax,10h
...
assume cs:code
a segment
dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffh
a ends
b segment
dw 0,0,0,0,0,0,0,0
b ends
code segment
start:
mov ax,b
mov ss,ax
mov ax,10h
...
阅读全文 |
评论次数(1) |
浏览次数(229) |
所属类型(默认类型)
『 查看更多文章 』