一、将下面的程序编译连接,用debug加载、跟踪,然后回答问题:
assume cs:code, ds:data, ss:stack
data segment
dw 0123h, 0456h, 0789h, 0abch, 0fedh, 0cbah, 0987h
data ends
stack segment
dw 0, 0, 0, 0, 0, 0, 0, 0
stack ends
code segment
start: mov ax, stack
mov ss, ax
mov sp, 16
mov ax, d...
- [游客] 楼主正解: 只是第六题有一点问题。。也不能算错 把Byte当成bit(我感觉像是故意的)从答案上 10/24 23:43
- [xmzyl] [ 游客 发表于 2009-11-01 11:59 ] [ 删除评论 ] 7 03/12 13:29
- [游客] 7),从内存中读取1024字节的数据,8086要读1024次,80386要读256次。 11/01 11:59
- [游客] 分析的挺好的,不过第三题中“同理stack段的段地址是X=4。”这句话好像应该是“同理stack段的 04/15 09:49
- [bslg123] 第五题,那么多的段可以公用一个段地址!自己研究一下便可明白,没必要赋值那么多次! 04/13 09:50
- [mywiil] 说的很对。 04/07 09:08
- [younggay] 答:PSP物理地址+100H=程序物理地址,从CS:IP查出代码段首地址是1DBB:0 所以PSP地 03/31 11:08
- [younggay] 做的没问题。 03/31 10:41
- [xmzyl] 第6题二次修正如下: 6) 8080、8088、8086、80286、80386的数据总线宽度分别 03/30 20:38
- [crazyman] 回答正确。 03/30 15:36
[2009-04-12 23:12] 试验5 编写、调试具有多个段的程序
阅读全文 |
评论次数(2) |
浏览次数(375) |
所属类型(汇编作业)
[2009-04-06 23:12] 检测点6.1
1.
; 下面的程序实现依次用内存0:0-0:15单元中的内容改写程序中的
;数据,完成程序:
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
add bx, 2
loop s
...
; 下面的程序实现依次用内存0:0-0:15单元中的内容改写程序中的
;数据,完成程序:
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
add bx, 2
loop s
...
阅读全文 |
评论次数(1) |
浏览次数(328) |
所属类型(汇编作业)
[2009-03-31 00:47] 实验4 [bx]和loop的使用
1. 编程,向内存0:200-0:23F依次传送数据0-63(3FH)。
assume code
code segment
mov ax, 0020h
mov ds, ax
mov bx, 0
mov cx, 40h
s:mov ds:[bx], bl
inc bx
loop s
mov ax, 4c00h
int 21h
code ends
end
2. 编程,向内存依次传送数据0-63(3FH),程序只能使用9条指令,9条指令包括“mov ax,4c00h”和“int 21h”。
第一题的答案已经...
assume code
code segment
mov ax, 0020h
mov ds, ax
mov bx, 0
mov cx, 40h
s:mov ds:[bx], bl
inc bx
loop s
mov ax, 4c00h
int 21h
code ends
end
2. 编程,向内存依次传送数据0-63(3FH),程序只能使用9条指令,9条指令包括“mov ax,4c00h”和“int 21h”。
第一题的答案已经...
阅读全文 |
评论次数(1) |
浏览次数(360) |
所属类型(汇编作业)
[2009-03-30 20:33] 试验3 编程、编译、连接、跟踪
1. 按试验要求,用edit,masm,link生成t1.exe文件。
2. 用debug跟踪t1.exe的执行过程,写出每一步执行后,相关寄存器的内容和栈顶的内容
1) mov ax, 2000H
;ax=2000H 栈顶SS:SP地址: 1DBB:0 内容: B80020(mov ax, 2000H)
2) mov ss, ax
;ax=2000H ss=2000H 栈顶地址: 2000:0 内容:FC46H
3) mov sp, 0
;这句和上一句一起执行了
4) add sp, 4
;栈顶地址: 2000...
2. 用debug跟踪t1.exe的执行过程,写出每一步执行后,相关寄存器的内容和栈顶的内容
1) mov ax, 2000H
;ax=2000H 栈顶SS:SP地址: 1DBB:0 内容: B80020(mov ax, 2000H)
2) mov ss, ax
;ax=2000H ss=2000H 栈顶地址: 2000:0 内容:FC46H
3) mov sp, 0
;这句和上一句一起执行了
4) add sp, 4
;栈顶地址: 2000...
阅读全文 |
评论次数(1) |
浏览次数(413) |
所属类型(汇编作业)
[2009-03-29 23:31] 实验2 用机器指令和汇编指令编程
实验2 用机器指令和汇编指令编程
1) 使用Debug,将下面的程序段写入内存,逐条执行,根据指令执行后的实际运行情况填空。
mov ax, ffff
mov ds, ax
mov ax, 2200
mov ss, ax
mov sp, 0100
mov ax, [0] ;ax=( 5BEA )
add ax, [2] ;ax=( 5CCA )
mov bx, [4] ;bx=( 30FO )
add bx, [6] ;bx=( 6021 )
push ax ;sp=( 00FE );修改的内存单元地址是( 2200FE )内...
1) 使用Debug,将下面的程序段写入内存,逐条执行,根据指令执行后的实际运行情况填空。
mov ax, ffff
mov ds, ax
mov ax, 2200
mov ss, ax
mov sp, 0100
mov ax, [0] ;ax=( 5BEA )
add ax, [2] ;ax=( 5CCA )
mov bx, [4] ;bx=( 30FO )
add bx, [6] ;bx=( 6021 )
push ax ;sp=( 00FE );修改的内存单元地址是( 2200FE )内...
阅读全文 |
评论次数(2) |
浏览次数(416) |
所属类型(汇编作业)
[2009-03-29 22:14] 检测点3.2
(题目略,原题参看教材P66)
1.定义以2000:10为栈顶的栈,然后依次push,达到逆序拷贝的目的,补全的程序如下:
mov ax, 2000H
mov ss, ax
mov sp, 10H
2.定义以1000:E为栈顶的栈,然后依次pop,达到逆序拷贝的目的,补全的程序如下:
mov ax, 1000H
mov ss, ax
mov sp, 000EH...
1.定义以2000:10为栈顶的栈,然后依次push,达到逆序拷贝的目的,补全的程序如下:
mov ax, 2000H
mov ss, ax
mov sp, 10H
2.定义以1000:E为栈顶的栈,然后依次pop,达到逆序拷贝的目的,补全的程序如下:
mov ax, 1000H
mov ss, ax
mov sp, 000EH...
阅读全文 |
评论次数(1) |
浏览次数(315) |
所属类型(汇编作业)
[2009-03-29 11:17] 检测点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
mov ds, ax
mov ax, [0000] AX = ( 2662H )
mov bx, [0001] BX = ( E626H ) ...
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
mov ds, ax
mov ax, [0000] AX = ( 2662H )
mov bx, [0001] BX = ( E626H ) ...
阅读全文 |
评论次数(1) |
浏览次数(285) |
所属类型(汇编作业)
[2009-03-28 15:35] 第二章试验任务1
执行完的寄存器状态:
AX = 0002 BX = 4026
debug使用小结
1.如果用debug的a命令,会自动把CS:IP作为当前要写入指令的地址
2.用e命令写入机器码,数值的地位必须先输入,如要输入1234H, 那么输入顺序是34,12...
AX = 0002 BX = 4026
debug使用小结
1.如果用debug的a命令,会自动把CS:IP作为当前要写入指令的地址
2.用e命令写入机器码,数值的地位必须先输入,如要输入1234H, 那么输入顺序是34,12...
阅读全文 |
评论次数(1) |
浏览次数(308) |
所属类型(汇编作业)
[2009-03-28 14:18] 检测点2.3
下面的3条指令执行后,CPU几次修改IP?都是在什么时候?最后IP中的值是多少?
mov ax, bx
sub ax, ax
jmp ax
答:CPU修改4次IP;在每条指令读入指令缓存区后分别改变了一次,执行jmp ax也改了一次IP;最后IP的值是 0000H。...
mov ax, bx
sub ax, ax
jmp ax
答:CPU修改4次IP;在每条指令读入指令缓存区后分别改变了一次,执行jmp ax也改了一次IP;最后IP的值是 0000H。...
阅读全文 |
评论次数(1) |
浏览次数(347) |
所属类型(汇编作业)
[2009-03-28 14:01] 汇编指令的英文全称(转载)
汇编指令的英文全称(转载)
汇编指令的英文全称
如果你想写系统软件,两本入门书籍--谭浩强的《C语言程序设计》和王爽的《汇编语言》是必看的。谭老的C语言已相当成熟,王老师的汇编倒有个小缺陷—指令没有英文全称,或许他认为现在学编程的朋友都不记单词,如同新生代作家看不懂英文原著一般。不过我觉得记住指令的英文全称,就不容易搞混,印象会更深刻,所以我把王爽书中出现的英文缩写的全称罗列出来,以便入门的朋友更好地记住它们。
8086CPU提供以下几大类指令。
一、数据传送指令
比如,mov(move)、push、pop、pushf(push fla...
汇编指令的英文全称
如果你想写系统软件,两本入门书籍--谭浩强的《C语言程序设计》和王爽的《汇编语言》是必看的。谭老的C语言已相当成熟,王老师的汇编倒有个小缺陷—指令没有英文全称,或许他认为现在学编程的朋友都不记单词,如同新生代作家看不懂英文原著一般。不过我觉得记住指令的英文全称,就不容易搞混,印象会更深刻,所以我把王爽书中出现的英文缩写的全称罗列出来,以便入门的朋友更好地记住它们。
8086CPU提供以下几大类指令。
一、数据传送指令
比如,mov(move)、push、pop、pushf(push fla...
阅读全文 |
评论次数(1) |
浏览次数(397) |
所属类型(默认类型)
『 查看更多文章 』