- [游客] 求3号,不是1号。 10/25 19:27
- [towersimper] 这就看是CS:IP指向的还是DS:偏移地址指向,若是前者是指令,若是后者是数据。即指令和数据都是二进 10/22 16:57
- [游客] 问一下,我们如何判断e写入的是数据还是指令呢? 10/03 22:43
- [chendeke060482] 告诉大家一个秘密。用我博客里介绍的win-masm v2.2软件,然后用二进制软件打开安装目录下的m 08/05 22:49
- [zkry04] 真的是好东西,及时雨,这几天就是被这些错误困扰,头都搞大了。。。感谢楼主提供这么好的东西。收藏了!! 08/04 20:04
- [masmaster] 嘿嘿~~↖(^ω^)↗ 07/27 16:16
- [towersimper] 呵呵。我当然知道此处程序只能处理65536以下的整数啊。只是姑且按照书上说的那样啊。在第十章设计点中 07/27 15:07
- [masmaster] 找个32位大数测试了吗?例如:ffffffffh 07/27 14:51
- [towersimper] 好的,我试试。谢谢啊。呵呵 07/26 22:08
- [masmaster] 装个VM,试一试呢? 07/24 23:27
[2010-09-25 23:59] 实验13.2
(2)编写并安装int 7ch中断例程,功能为完成loop指令的功能。
参数:(cx)=循环次数,(bx)=位移
assume cs:code
code segment
start:
mov ax,cs
mov ds,ax
mov si,offset lp
mov ax,0
mov es,ax
mov di,200h
mov cx,offset lpend-offset lp
cld
rep movsb ;以上9句安装7ch中断例程
mov word ptr es:[7ch*4],200h
mov word ptr es:[7ch*4+2],0 ;...
参数:(cx)=循环次数,(bx)=位移
assume cs:code
code segment
start:
mov ax,cs
mov ds,ax
mov si,offset lp
mov ax,0
mov es,ax
mov di,200h
mov cx,offset lpend-offset lp
cld
rep movsb ;以上9句安装7ch中断例程
mov word ptr es:[7ch*4],200h
mov word ptr es:[7ch*4+2],0 ;...
阅读全文 |
评论次数(0) |
浏览次数(316) |
所属类型(汇编作业)
[2010-09-25 22:11] 实验13.1
(1)编写并安装int 7ch中断例程,功能为显示一个用0结束的字符串,中断例程安装在0:200处。
参数:(dh)=行号,(dl)=列号,(cl)=颜色,ds:si指向字符串首地址。
assume cs:code
data segment
db "welcome to masm!",0
data ends
code segment
start: mov ax,cs
mov ds,ax
mov si,offset strshow7cstart
mov ax,0
mov es,ax
mov di,200h
mov cx,offset strshow7cend-...
参数:(dh)=行号,(dl)=列号,(cl)=颜色,ds:si指向字符串首地址。
assume cs:code
data segment
db "welcome to masm!",0
data ends
code segment
start: mov ax,cs
mov ds,ax
mov si,offset strshow7cstart
mov ax,0
mov es,ax
mov di,200h
mov cx,offset strshow7cend-...
阅读全文 |
评论次数(0) |
浏览次数(366) |
所属类型(汇编作业)
[2010-09-25 20:25] 检测点13.1和13.2
(1)由于用7ch中断例程模拟式loop的功能,所以受loop的限制,loop是段内短转移,范围为[-128,127],可知最大转移位移为向后退128个内存单元。
(2)要求如图。
int 7ch的中断例程如下所示:
push bp
mov bp,sp
dec cx
jcxz pool
add [bp+2],bx
pool: pop bp
iret
检测点13.2
(1)不对,FFFF:0只是的存储单元属于只读存储器ROM,不能更改。
(2)也不对,开机后,完成BIOS的硬件检测和初始化后,调用int 19h来引导操作系统。引导结束后,计算机由操作系统来控制。可...
(2)要求如图。
int 7ch的中断例程如下所示:
push bp
mov bp,sp
dec cx
jcxz pool
add [bp+2],bx
pool: pop bp
iret
检测点13.2
(1)不对,FFFF:0只是的存储单元属于只读存储器ROM,不能更改。
(2)也不对,开机后,完成BIOS的硬件检测和初始化后,调用int 19h来引导操作系统。引导结束后,计算机由操作系统来控制。可...
阅读全文 |
评论次数(0) |
浏览次数(339) |
所属类型(汇编作业)
[2010-09-25 15:40] 实验12 编写0号中断处理程序
实验12 编写0号中断处理程序
assume cs:code
code segment
start: mov ax,cs
mov ds,ax
mov si,offset do0 ;设置ds:si指向源地址
mov ax,0
mov es,ax
mov di,200h ;设置es:di指向源地址
mov cx,offset do0end - offset do0 ;设置cx为传输长度
cld ;设置传输方向为正
rep m...
assume cs:code
code segment
start: mov ax,cs
mov ds,ax
mov si,offset do0 ;设置ds:si指向源地址
mov ax,0
mov es,ax
mov di,200h ;设置es:di指向源地址
mov cx,offset do0end - offset do0 ;设置cx为传输长度
cld ;设置传输方向为正
rep m...
阅读全文 |
评论次数(0) |
浏览次数(330) |
所属类型(汇编作业)
[2010-09-24 21:21] 检测点12.1
(1)如果是求4号中断源对应的入口地址的话,题中给出的0000:0000到0000:000F是不够的,因为它给出的只能求0号,1号,2号,3号中断的对应的入口地址。因为每个中断源的中断类型码对应中断向量表一个表项,而每个表项由入口段地址和偏移地址组成,占两个字,即占4个连续内存单元。如果是求1号中断源对应的入口地址的话,则可知,段地址IP=018BH,CS=0070H,即0070:018B。
(2)由上分析可知,(IP)=4N,(CS)=4N+2...
(2)由上分析可知,(IP)=4N,(CS)=4N+2...
阅读全文 |
评论次数(1) |
浏览次数(601) |
所属类型(汇编作业)
[2010-09-24 21:01] 实验11 编写子程序
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
mov ax,4c00h
int 21h
letterc:push si
s0: mov al,[si]
cmp al,0
je exitproce
cmp al,61h ;61h为'a'的ASCII码
jb n...
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
mov ax,4c00h
int 21h
letterc:push si
s0: mov al,[si]
cmp al,0
je exitproce
cmp al,61h ;61h为'a'的ASCII码
jb n...
阅读全文 |
评论次数(0) |
浏览次数(329) |
所属类型(汇编作业)
[2010-09-24 19:45] 检测点11.4
首先将(ax)=0压栈,然后通过popf将标志寄存器置零。
赋予(ax)=0fff0h,并与0010h相加后,
(ax)=0fff0+0010h=0且发生进位,所以,CF=1,ZF=1,PF=1,OF=0,SF=0。
此外,DF,IF,TF,AF没有发生变化,依然为初始值,即IF=0,TF=0,DF=0,AF=0。
具体如下所示:
fff0h) 11111111 11110000B
0010h)+00000000 11110000B
--------------------------
100000000 00000000B
- ...
赋予(ax)=0fff0h,并与0010h相加后,
(ax)=0fff0+0010h=0且发生进位,所以,CF=1,ZF=1,PF=1,OF=0,SF=0。
此外,DF,IF,TF,AF没有发生变化,依然为初始值,即IF=0,TF=0,DF=0,AF=0。
具体如下所示:
fff0h) 11111111 11110000B
0010h)+00000000 11110000B
--------------------------
100000000 00000000B
- ...
阅读全文 |
评论次数(0) |
浏览次数(301) |
所属类型(汇编作业)
[2010-09-24 18:57] 检测点11.3
[1]统计在[32,128]的个数。
空格处依次填写的为:
jb s0
ja s0
[2]与[1]一样,只是统计(32,128)的个数。
空格处依次填写的为:
jna s0
jnb s0...
空格处依次填写的为:
jb s0
ja s0
[2]与[1]一样,只是统计(32,128)的个数。
空格处依次填写的为:
jna s0
jnb s0...
阅读全文 |
评论次数(0) |
浏览次数(322) |
所属类型(汇编作业)
[2010-09-24 15:33] 汇编语言指令 全称
汇编语言指令 全称
1.通用数据传送指令.
MOV----> move
MOVSX---->extended move with sign data
MOVZX---->extended move with zero data
PUSH---->push
POP---->pop
PUSHA---->push all
POPA---->pop all
PUSHAD---->push all data
POPAD---->pop all data
BSWAP---->byte swap
XCHG---->exchange
CMPXCHG----...
1.通用数据传送指令.
MOV----> move
MOVSX---->extended move with sign data
MOVZX---->extended move with zero data
PUSH---->push
POP---->pop
PUSHA---->push all
POPA---->pop all
PUSHAD---->push all data
POPAD---->pop all data
BSWAP---->byte swap
XCHG---->exchange
CMPXCHG----...
阅读全文 |
评论次数(0) |
浏览次数(349) |
所属类型(默认类型)
[2010-09-20 16:28] 检测点11.2
1.sub al, al
执行后(al)=0
CF=0, OF=0, SF=0, ZF=1, PF=1
2.mov al, 10H
执行后(al)=16=00010000B,标志寄存器不受mov指令影响。
CF=0, OF=0, SF=0, ZF=1, PF=1
3.add al,90H
执行后(al)=A0H=10100000H
CF=0, OF=0, SF=1, ZF=0, PF=1
4.mov al,80H
执行后(al)=80H=10000000H,标志寄存器不受mov指令影响。
CF=0, OF=0, SF=1, ZF=0, PF=1
5.add al,80H...
执行后(al)=0
CF=0, OF=0, SF=0, ZF=1, PF=1
2.mov al, 10H
执行后(al)=16=00010000B,标志寄存器不受mov指令影响。
CF=0, OF=0, SF=0, ZF=1, PF=1
3.add al,90H
执行后(al)=A0H=10100000H
CF=0, OF=0, SF=1, ZF=0, PF=1
4.mov al,80H
执行后(al)=80H=10000000H,标志寄存器不受mov指令影响。
CF=0, OF=0, SF=1, ZF=0, PF=1
5.add al,80H...
阅读全文 |
评论次数(0) |
浏览次数(324) |
所属类型(汇编作业)