- [hkey00] 受教了,吸取到知识 11/14 00:02
- [xiaochong] 写子程序时,一般会将子程序中用到的寄存器,但不是传递结果的寄存器加以保护,目的是不会影响到调用函数中 07/01 21:07
- [游客] 多谢大家的指点,如果不保护现场按照starrynight 同志说的那样去做,程序将无法返回,我这里 06/11 22:05
- [duckgaga] 楼上说得对,如这个子程序在别的程序中重复利用时,你就会发现保护现场的重要性 06/10 23:38
- [starrynight] 保护和恢复现场 工作不是必要的,但是当程序逻辑复杂了,自然成为一种需要。 06/10 21:13
- [starrynight] 程序实现的很好。 不过最好把 mov ax,0b800h mov es,ax 两句放入sho 06/10 21:11
- [leeyeye] 发现上面的程序如果把PUSH和POP的指令全部剔除,依然能得到正确的答案。 06/10 20:34
- [leeyeye] 谢谢指点,我再看看程序。 06/10 17:16
- [游客] 很多值还是使用栈保存的好 你这样 的双重循环,很多寄存器的值都可能被覆盖掉 06/09 13:31
- [游客] 是不是你的ax值在没使用的时候就被改掉了啊 06/09 13:30
- [leeyeye] 阁下何以对寡人之年龄如此感兴趣? 05/25 10:33
- [lmyycx] 老兄 你多大了? 难道有我大啊? 05/23 06:50
[2008-06-25 10:18] 第13章(一版)246页int7ch中断例程疑问
其中的push bp与pop bp似乎是多余代码,没有起任何作用。试将他们去掉,然后将add [bp+2],bx改成add [bp],bx依然能实现程序所要的功能。...
阅读全文 |
评论次数(1) |
浏览次数(673) |
所属类型(默认类型)
[2008-06-10 16:34] 实验10第一题
assume cs:code
data segment
db 'Welcome to masm!',0
data ends
code segment
start:mov dh,12 ;行数
mov dl,32 ;列数
mov cl,138 ;颜色效果
mov ax,data
mov ds,ax
;***************新增两条指令************
mov ax,0b800h
mov es,...
data segment
db 'Welcome to masm!',0
data ends
code segment
start:mov dh,12 ;行数
mov dl,32 ;列数
mov cl,138 ;颜色效果
mov ax,data
mov ds,ax
;***************新增两条指令************
mov ax,0b800h
mov es,...
阅读全文 |
评论次数(5) |
浏览次数(733) |
所属类型(汇编作业)
[2008-06-08 22:21] 实验9精简法,但无法成功,似乎中断了,请高手分析下,哪里出错了?
assume cs:codesg,es:excess,ss:stack
excess segment
db 'welcome to masm!'
excess ends
stack segment stack ;用堆栈保存行数和颜色效果
db 0ah,2,0bh,24,0ch,71
stack ends
codesg segment
start:mov ax,0b800h
mov ds,ax
mov ax,excess
mov es,ax
mov ax,stack
...
excess segment
db 'welcome to masm!'
excess ends
stack segment stack ;用堆栈保存行数和颜色效果
db 0ah,2,0bh,24,0ch,71
stack ends
codesg segment
start:mov ax,0b800h
mov ds,ax
mov ax,excess
mov es,ax
mov ax,stack
...
阅读全文 |
评论次数(3) |
浏览次数(723) |
所属类型(汇编作业)
[2008-06-04 22:45] 实验9代码,已检验,但不知是否符合题意.
assume cs:codesg,es:excess
codesg segment
excess segment
db 'welcome to masm!'
excess ends
start:mov ax,0b800h
mov ds,ax
mov ax,excess
mov es,ax
tt:mov si,0
mov bx,12*160+64 ;屏幕中间
mov cx,16
s:mov al,es:[si]
mov ds:[bx...
codesg segment
excess segment
db 'welcome to masm!'
excess ends
start:mov ax,0b800h
mov ds,ax
mov ax,excess
mov es,ax
tt:mov si,0
mov bx,12*160+64 ;屏幕中间
mov cx,16
s:mov al,es:[si]
mov ds:[bx...
阅读全文 |
评论次数(2) |
浏览次数(612) |
所属类型(汇编作业)
[2008-06-01 23:10] 第八章实验7终于搞定。
assume cs:codesg,es:table,ss:stacksg
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'
db ' '
;以上是表示21年的21个字符串
dd 16,22,382...
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'
db ' '
;以上是表示21年的21个字符串
dd 16,22,382...
阅读全文 |
评论次数(1) |
浏览次数(514) |
所属类型(汇编作业)
[2008-05-27 21:11] 实验5(5),请查验。
assume cs:code
a segment
db 1,2,3,4,5,6,7,8
a ends
b segment
db 1,2,3,4,5,6,7,8
b ends
c segment
db 0,0,0,0,0,0,0,0
c ends
code segment
start:mov ax,a
mov ds,ax
mov ax,c
mov es,ax
mov bx,0
mov cx,8
s:mov ax,0
m...
a segment
db 1,2,3,4,5,6,7,8
a ends
b segment
db 1,2,3,4,5,6,7,8
b ends
c segment
db 0,0,0,0,0,0,0,0
c ends
code segment
start:mov ax,a
mov ds,ax
mov ax,c
mov es,ax
mov bx,0
mov cx,8
s:mov ax,0
m...
阅读全文 |
评论次数(1) |
浏览次数(508) |
所属类型(汇编作业)
[2008-05-25 18:36] 各汇编指令占用字节数(请大虾们补充)
mov用在寄存器之间传送数据的指令是2个字节,用在寄存器和立即数之间是3个字节,用在寄存器和ES:[BX]这之间是3个字节。inc指令占用一个字节,loop s占用两个字节。
=======================================================
暂时发现这些。...
=======================================================
暂时发现这些。...
阅读全文 |
评论次数(3) |
浏览次数(565) |
所属类型(默认类型)
[2008-05-24 07:48] 实验4第2小题答案
assume cs:abc
abc segment
start:mov ax,20h
mov ds,ax
mov cx,40h
sub bx,bx (bx为偏移地址,同时也是要送入内存单元的第一个数据)
s:mov [bx],bx
inc bx
loop s
mov ax,4c00h
int 21h
abc ends
end
做这道题的关键是将偏移地址与要送入内存单元的第一个数据等值。使两者在循环时同时加1也能保持等值。
不知还有没其他方法,望指教。...
abc segment
start:mov ax,20h
mov ds,ax
mov cx,40h
sub bx,bx (bx为偏移地址,同时也是要送入内存单元的第一个数据)
s:mov [bx],bx
inc bx
loop s
mov ax,4c00h
int 21h
abc ends
end
做这道题的关键是将偏移地址与要送入内存单元的第一个数据等值。使两者在循环时同时加1也能保持等值。
不知还有没其他方法,望指教。...
阅读全文 |
评论次数(1) |
浏览次数(560) |
所属类型(汇编作业)
[2008-05-23 20:09] 实验4第一小题答案
assume cs:abc
abc segment
start:sub ax,ax
mov ds,ax
mov cx,64
mov bx,200h
sub ax,ax
s:mov ds:[bx],al
add al,1
inc bx
loop s
mov ax,4c00h
int 21h
abc ends
end...
abc segment
start:sub ax,ax
mov ds,ax
mov cx,64
mov bx,200h
sub ax,ax
s:mov ds:[bx],al
add al,1
inc bx
loop s
mov ax,4c00h
int 21h
abc ends
end...
阅读全文 |
评论次数(2) |
浏览次数(522) |
所属类型(汇编作业)
[2008-05-21 21:28] 第3章汇编测试题目(请高手指点)
共5道单选题目
(1)下列说法正确的是:____
1、 数据段和代码段的段地址不能相同。
2、 指令mov ax,bx执行完后bx中的值为零。
3、 一个栈段的大小可以设为任意值。
4、 当SP=0时,再次压栈将发生栈顶超界,但压栈操作有效。
(2)若将以1000H为段地址的整个段空间当作栈使用,那么寄存器SP的初始值最合理的设置是_____。
1、 0000H
2、 0001H
3、 FFFFH
4、 FFFEH
(3)能够只将al中的内容压入栈的指令序列是_____。
1、 push al
2、 pop ax...
(1)下列说法正确的是:____
1、 数据段和代码段的段地址不能相同。
2、 指令mov ax,bx执行完后bx中的值为零。
3、 一个栈段的大小可以设为任意值。
4、 当SP=0时,再次压栈将发生栈顶超界,但压栈操作有效。
(2)若将以1000H为段地址的整个段空间当作栈使用,那么寄存器SP的初始值最合理的设置是_____。
1、 0000H
2、 0001H
3、 FFFFH
4、 FFFEH
(3)能够只将al中的内容压入栈的指令序列是_____。
1、 push al
2、 pop ax...
阅读全文 |
评论次数(4) |
浏览次数(714) |
所属类型(汇编作业)
『 查看更多文章 』