p190的源程序如下:
assume cs:codesg
stack segment
db 16 dup (0)
stack ends
codesg segment
mov ax,4c00h
int 21h
start: mov ax,stack
mov ss,ax
mov sp,16
mov ax,0
push ax
mov bx,0
ret
codesg ends
end start
然后
D:\masm>debug ...
- [waiwai] 楼上的,注意了,按这个结构,两个mov cx,4都是必须的哦 01/08 15:34
- [游客] 代码好像 mov cx 4 有点多余了 01/08 15:09
- [malachi] 9.1.2 中的 jmp dword ptr ds:[0] 是在 ds:[0] 处取一个字型数据 给 08/21 10:17
- [malachi] 是想早上起来纠正错误的。。。 08/21 10:11
- [coco] 楼主起得很早啊。 08/21 09:39
- [malachi] 昨天人傻了。。。我已经明白怎么回事了 08/21 07:55
- [xiaochong] 9.1.1 使IP的值经跳转后变为0,则需保证ds:[bx+1]处的字型单元数据为0000H,所以定 08/19 14:44
- [sysnap] 我看还不错:-) 08/18 15:15
- [malachi] 这个问题不知道怎么回答好,呵呵 我是这样想的:如果段中的数据占N个字节,则程序加载后,该段实际占有 08/18 13:25
- [crazyman] 程序没问题! 08/18 11:37
[2008-08-20 23:51] ret指令搞的我头好晕 大家指点下
阅读全文 |
评论次数(3) |
浏览次数(908) |
所属类型(汇编作业)
[2008-08-19 09:43] 检测点 9.1 、9.2、 9.3以及一些疑问
检测点9.1
9.1.1了使IP的值经跳转后变为0,则需保证ds:[bx+1]处的字型单元数据为0000H,所以定义3个字节型数据0就符合“应该”的要求
dw 0,0,0
9.1.2 补全程序,使jmp指令执行后,CS:IP指向程序的第一条指令。
assume cs:code,ds:data
data segment
dd 12345678h
data ends
code segment
start: mov ax,data
mov ds,ax
mov bx,0
mov [bx],__ ; 这空不知...
9.1.1了使IP的值经跳转后变为0,则需保证ds:[bx+1]处的字型单元数据为0000H,所以定义3个字节型数据0就符合“应该”的要求
dw 0,0,0
9.1.2 补全程序,使jmp指令执行后,CS:IP指向程序的第一条指令。
assume cs:code,ds:data
data segment
dd 12345678h
data ends
code segment
start: mov ax,data
mov ds,ax
mov bx,0
mov [bx],__ ; 这空不知...
阅读全文 |
评论次数(2) |
浏览次数(937) |
所属类型(汇编作业)
[2008-08-18 10:59] 实验六 实践课程中的程序
2.编程,完成问题7.9中的程序
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 s...
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 s...
阅读全文 |
评论次数(3) |
浏览次数(930) |
所属类型(实验报告)
[2008-08-18 10:46] 实验五 编写调试具有多个段的程序
1.①CPU执行程序至返回前,DATA段中数据是将源程序中数据段DW后的数据以字为单位顺序写入
②没记录下来..
③程序加载后,如以实际CODE段的段地址为X,则DATA段的段地址
为X-2、STACK段的段地址为X-1
2.①CPU执行程序至返回前,DATA段中数据占据前两个字单元,共4个 字节。
③程序加载后,如以实际CODE段的段地址为X,则DATA段的段地址
为X-2、STACK段的段地址为X-1
3.将⒌⒉中的DATA、STACK段移至最后语句END START之前
①CPU执行程序至返回前,DATA段中数据同上
程序加载后,如以实际CODE段的段地...
②没记录下来..
③程序加载后,如以实际CODE段的段地址为X,则DATA段的段地址
为X-2、STACK段的段地址为X-1
2.①CPU执行程序至返回前,DATA段中数据占据前两个字单元,共4个 字节。
③程序加载后,如以实际CODE段的段地址为X,则DATA段的段地址
为X-2、STACK段的段地址为X-1
3.将⒌⒉中的DATA、STACK段移至最后语句END START之前
①CPU执行程序至返回前,DATA段中数据同上
程序加载后,如以实际CODE段的段地...
阅读全文 |
评论次数(4) |
浏览次数(938) |
所属类型(实验报告)
[2008-08-09 11:32] 检测点6.1解题
(1).
程序的数据段,是在以CS为段地址 ,因此根据题意在写出入时,段地址就是CS,偏移地址从0H起,每次以2为步进单位的字单元内。
assume cs:codesg
codesg segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
start: mov ax,0
mov ds,ax
mov bx,0
mov cx,8
s: mov ax,[bx]
mov cs:[bx],ax ;此条指令为所填指令
a...
程序的数据段,是在以CS为段地址 ,因此根据题意在写出入时,段地址就是CS,偏移地址从0H起,每次以2为步进单位的字单元内。
assume cs:codesg
codesg segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
start: mov ax,0
mov ds,ax
mov bx,0
mov cx,8
s: mov ax,[bx]
mov cs:[bx],ax ;此条指令为所填指令
a...
阅读全文 |
评论次数(1) |
浏览次数(747) |
所属类型(汇编作业)
[2008-08-08 11:10] 实验四 【bx】和loop的使用
1.向内存0:200~0:23F 依次传送数据0~63(3FH)
程序如下:
assume cs:codesg
codesg segment
mov ax,0020h
mov ds,ax
mov bx,0
mov dl,0
mov cx,40h
s: mov [bx],dl
inc dl
inc bx
loop s
mov ax,4c00h
int 21h
codesg ends
...
程序如下:
assume cs:codesg
codesg segment
mov ax,0020h
mov ds,ax
mov bx,0
mov dl,0
mov cx,40h
s: mov [bx],dl
inc dl
inc bx
loop s
mov ax,4c00h
int 21h
codesg ends
...
阅读全文 |
评论次数(1) |
浏览次数(693) |
所属类型(实验报告)
[2008-08-04 11:26] 实验三 编程、编译、连接、跟踪
前面部分没复制过来,不知道怎么拉到上面去
D:\Asm\masm>link
Microsoft (R) Overlay Linker Version 3.65
Copyright (C) Microsoft Corp 1983-1988. All rights reserved.
Object Modules [.OBJ]: t1
Run File [T1.EXE]:
List File [NUL.MAP]:
Libraries [.LIB]:
LINK : warning L4021: no stack segment
D:\Asm\masm>debug t...
D:\Asm\masm>link
Microsoft (R) Overlay Linker Version 3.65
Copyright (C) Microsoft Corp 1983-1988. All rights reserved.
Object Modules [.OBJ]: t1
Run File [T1.EXE]:
List File [NUL.MAP]:
Libraries [.LIB]:
LINK : warning L4021: no stack segment
D:\Asm\masm>debug t...
阅读全文 |
评论次数(1) |
浏览次数(858) |
所属类型(实验报告)
[2008-08-03 22:30] 实验二 用机器指令和汇编指令编程
实验任务:
(1) 使用Debug,将下面的程序段写入内存,逐条执行,根据指令执行后的实际运行情况填空
-d ffff:0 f
FFFF:0000 EA 5B E0 00 F0 30 39 2F-30 37 2F 30 34 00 FC 8B
mov ax,ffff ;将数据FFFF传送到寄存器AX
mov ds,ax ;将寄存器AX中的数据传送到段寄存器DS
mov ax,2200 ;将数据2200传送到寄存器AX
mov ss,ax ;将寄存器AX中的数据传送到栈寄存器,定义栈段SS=2200
mov sp,0100 ;初始化栈顶,SP=010...
(1) 使用Debug,将下面的程序段写入内存,逐条执行,根据指令执行后的实际运行情况填空
-d ffff:0 f
FFFF:0000 EA 5B E0 00 F0 30 39 2F-30 37 2F 30 34 00 FC 8B
mov ax,ffff ;将数据FFFF传送到寄存器AX
mov ds,ax ;将寄存器AX中的数据传送到段寄存器DS
mov ax,2200 ;将数据2200传送到寄存器AX
mov ss,ax ;将寄存器AX中的数据传送到栈寄存器,定义栈段SS=2200
mov sp,0100 ;初始化栈顶,SP=010...
阅读全文 |
评论次数(0) |
浏览次数(667) |
所属类型(实验报告)
[2008-08-03 21:52] 检测点3.2解题
(1) 补全下面的程序,使其可以将10000H~1000FH中的8个字,逆序拷贝到20000H~2000FH中,逆序拷贝的含义如图3.17所示(图中内存里的数据均为假设):
mov ax,1000H ;传送数据到AX,AX=1000H
mov ds,ax ;从AX中传送数据到DS段寄存器,DS=1000H
;补全程序如下:
mov ax,2000H ;传送数据到AX,AX=2000H
mov ss,ax ;从AX中传送数据到SS栈寄存器,定义栈段,SS=2000H
mov sp,0010H ;定义栈顶地址,SP=0010H,执行完后SS...
mov ax,1000H ;传送数据到AX,AX=1000H
mov ds,ax ;从AX中传送数据到DS段寄存器,DS=1000H
;补全程序如下:
mov ax,2000H ;传送数据到AX,AX=2000H
mov ss,ax ;从AX中传送数据到SS栈寄存器,定义栈段,SS=2000H
mov sp,0010H ;定义栈顶地址,SP=0010H,执行完后SS...
阅读全文 |
评论次数(1) |
浏览次数(748) |
所属类型(汇编作业)
[2008-08-03 00:28] 检测点3.1个人解题思路
(1)在Debug中 用"d 0:0 1f"查看内存,结果如下:
0000:0000 70 80 F0 30 EF 60 30 E2-00 80 80 12 66 20 22 60
0000:0010 62 26 E6 D6 CC 2E 3C 3B-AB BA 00 00 26 06 66 88
下面的程序执行前,AX=0,BX=0,写出每条汇编指令执行完后相关寄存器中的值。
解:
mov ax,1 将数据1传送到寄存器AX
mov ds,ax DS=0001H 将寄存器AX中的数据传送到段寄存器DS
mov ax,[000...
0000:0000 70 80 F0 30 EF 60 30 E2-00 80 80 12 66 20 22 60
0000:0010 62 26 E6 D6 CC 2E 3C 3B-AB BA 00 00 26 06 66 88
下面的程序执行前,AX=0,BX=0,写出每条汇编指令执行完后相关寄存器中的值。
解:
mov ax,1 将数据1传送到寄存器AX
mov ds,ax DS=0001H 将寄存器AX中的数据传送到段寄存器DS
mov ax,[000...
阅读全文 |
评论次数(1) |
浏览次数(760) |
所属类型(汇编作业)
『 查看更多文章 』