assume cs:codesg
codesg segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
dw 0,0,0,0,0,0,0,0,0,0
start: mov ax,cs
mov ss,ax
mov sp,24h
mov ax,0
mov ds,ax
mov bx,0
mov cx,8
s: push [bx]
pop cs:[bx]
add bx,2
loop s
mov ax,4c00h
int 21h
codesg ends
end start
开始...



- [charly_yby] 1024^3=2^10*3=2^30 05/30 16:59
- [wisji8] 看来还是和大家说的23个才对,因为我刚才数了下机器指令的字节数,刚数到23个。 05/04 23:12
- [wisji8] 17个不对,因为我20个只复制到mov es:[bx], al。 05/04 23:11
- [游客] 博主真辛苦。 03/31 16:03
- [angelvsdemon] 同感啊! 03/29 18:12
- [phoenixbsd] 兄弟铁人啊! 03/20 23:13
- [charly_yby] 我这只小笨猪,用记事本打开源程序再复制啊= = 03/18 18:39
- [charly_yby] 恩,努力~ 03/15 23:22
- [versaariel] 工作就是生存,开心点,生活是自己的^-^ 03/15 20:10
- [charly_yby] 没更改过环境变量,昨天也没有尝试,索性就放在源目录里呗~ 不过还是谢谢提醒~ 03/10 21:23
- [游客] 在编译的时候,masm在忽略了交叉文件后,masm自动关闭了?你是怎么解决的?需要把什么放进syst 07/02 22:01
- 质疑实验4第二题九行的解法 (求前辈解惑~~~)
- 在计算某个乘法算式时,用mov 先把数值放进去,是否可以节约时间? (完全新手的猜想~)
- 在编译的时候,masm在忽略了交叉文件后,masm自动关闭了
- <<<<<<<<<<求助>>>>>>>>>第三章检测题 知道自己的错了,概念有2个不确定的~
- 在debug中执行pop指令造成刷屏!求助!
- 关于检测点3.1中的一些概念问题~ 求高手指点!!!
- 段大小的问题~ (第三个选择为什么是错的?)
- 关于IP变更次数容易犯的错误~ (同样是菜鸟的同学进)
- 关于第二章检测题的疑问!!
- 完全菜鸟自学,基础很差,需要购买《微机原理与接口》,不知道能为王爽老师的《汇编语言》做铺垫与基础学习的是哪个版本呢?

[2010-03-18 19:03] 第六章 检测点 6.1(2)
阅读全文 |
评论次数(0) |
浏览次数(531) |
所属类型(汇编作业)
[2010-03-18 18:35] 第六章 检测点6.1 (请学长们多多指教~)
assume cs:codesg
codesg segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
atart: 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
mov ax,4c00h
int 21
codesg ends
end start
AX=1068 BX=0000 CX=0008 DX=0000 SP=0000 BP=000...
codesg segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
atart: 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
mov ax,4c00h
int 21
codesg ends
end start
AX=1068 BX=0000 CX=0008 DX=0000 SP=0000 BP=000...
阅读全文 |
评论次数(1) |
浏览次数(651) |
所属类型(汇编作业)
[2010-03-18 17:58] 实验4 第三小题(欢迎学长们指正~)
assume cs:code
code segment
mov ax,cs
mov ds,ax
mov ax,20H
mov es,ax
mov bx,0
mov cx,17h
s:mov al,[bx]
mov es:[bx],al
inc bx
loop s
mov ax,4c00h
int 21h
code ends ...
code segment
mov ax,cs
mov ds,ax
mov ax,20H
mov es,ax
mov bx,0
mov cx,17h
s:mov al,[bx]
mov es:[bx],al
inc bx
loop s
mov ax,4c00h
int 21h
code ends ...
阅读全文 |
评论次数(2) |
浏览次数(701) |
所属类型(汇编作业)
[2010-03-12 22:55] 实验4 第1、2合(3还得研究研究- -)
总共是9行(开始还在计较为什么没有bh=0来清零高位)
assume cs:code
code segment
mov ax,0020h
mov ds,ax
mov bx,0
mov cx,64
s:mov [bx],bl
inc bl
loop s
mov ax,4c00h
int 21h
code ends
end
很窘迫的说- -
最开始死活就要把mov bx,0加上,仔细看了看书和论坛,搞明白了,只是把8位数据放到一个内存单元中。晕菜呀~...
assume cs:code
code segment
mov ax,0020h
mov ds,ax
mov bx,0
mov cx,64
s:mov [bx],bl
inc bl
loop s
mov ax,4c00h
int 21h
code ends
end
很窘迫的说- -
最开始死活就要把mov bx,0加上,仔细看了看书和论坛,搞明白了,只是把8位数据放到一个内存单元中。晕菜呀~...
阅读全文 |
评论次数(0) |
浏览次数(442) |
所属类型(汇编作业)
[2010-03-10 17:09] 实验3 (附部分图)
在编译的时候因为没有把masm程序放到system32下,折腾了半天,呵呵
然后又因为低头看书打字,恩错字母,把segment的t打成了m(不知道怎么搞的。。。)
再然后呢,又是在cmd下做的实验,晕菜~
现在经过一波三折终于出宫了~哈哈...
然后又因为低头看书打字,恩错字母,把segment的t打成了m(不知道怎么搞的。。。)
再然后呢,又是在cmd下做的实验,晕菜~
现在经过一波三折终于出宫了~哈哈...
阅读全文 |
评论次数(3) |
浏览次数(686) |
所属类型(汇编作业)
[2010-03-09 00:11] 实验2 1,2
1.使用debug,将上面的程序段写入内存,逐条执行,根据指令执行后的实际运行情况填空。
mov ax,ffff
mov ds,ax
mov ax,2200
mov ss,ax
mov sp,0100
mov ax,[0] ;ax=5EBC
add ax,[2] ;ax=5CCA
mov bx,[4] ;bx=30F0
add bx,[6] ;bx=6023
push ax ;sp=00FE ;修改的内存单元的地址是220FE 内存为5...
mov ax,ffff
mov ds,ax
mov ax,2200
mov ss,ax
mov sp,0100
mov ax,[0] ;ax=5EBC
add ax,[2] ;ax=5CCA
mov bx,[4] ;bx=30F0
add bx,[6] ;bx=6023
push ax ;sp=00FE ;修改的内存单元的地址是220FE 内存为5...
阅读全文 |
评论次数(1) |
浏览次数(254) |
所属类型(汇编作业)
[2010-03-08 21:06] 检测点 3.2 (累~真绕脑子啊= =)
1.补全下面的程序,使其可以将10000-1000FH中的8个字,逆序复制到20000-2000F中。
mov ax,1000h
mov ds,ax
(此时AX=1000 DS=1000)
add ax,ax ax=2000h
mov ss,ax ss=2000
mov sp,10h sp=0010
(此时SS=2000 SP=0010) (空栈PUSH命令SP值+2)
push [0]
push [2]
push [4]
push [6]
push [8]
push [a]
push [c]
push [e]
...
mov ax,1000h
mov ds,ax
(此时AX=1000 DS=1000)
add ax,ax ax=2000h
mov ss,ax ss=2000
mov sp,10h sp=0010
(此时SS=2000 SP=0010) (空栈PUSH命令SP值+2)
push [0]
push [2]
push [4]
push [6]
push [8]
push [a]
push [c]
push [e]
...
阅读全文 |
评论次数(4) |
浏览次数(269) |
所属类型(汇编作业)
[2010-03-07 19:39] 检测点 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=e626
mov ax,bx ...
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=e626
mov ax,bx ...
阅读全文 |
评论次数(5) |
浏览次数(260) |
所属类型(汇编作业)
[2010-03-06 14:10] 第二章 实验1 (2)(3)(4) (菜鸟自学,盼高手抓虫)
2.将下面3条指令写入从2000:0开始的内存单元中,利用这3条指令计算2的8次方。
MOV AX,1
ADD AX,AX
JMP 2000:0003
首先修改CS;IP的值,然后把从20000开始的数据更改为命令
MOV AX,1。ADD AX,AX。JMP 2000:0003。
从2000:0处执行8次后,AX=0100H=2^8=256
3.查看内存中的内容PC机主板上的ROM中写有一个生产日期,在内存FFF00H--FFFFFH的某几个单元中,请找到这个生产日期并试图改变它。
操作无效~因为是ROM,是只读存储器,在debug中无法更改。
...
MOV AX,1
ADD AX,AX
JMP 2000:0003
首先修改CS;IP的值,然后把从20000开始的数据更改为命令
MOV AX,1。ADD AX,AX。JMP 2000:0003。
从2000:0处执行8次后,AX=0100H=2^8=256
3.查看内存中的内容PC机主板上的ROM中写有一个生产日期,在内存FFF00H--FFFFFH的某几个单元中,请找到这个生产日期并试图改变它。
操作无效~因为是ROM,是只读存储器,在debug中无法更改。
...
阅读全文 |
评论次数(1) |
浏览次数(278) |
所属类型(汇编作业)
[2010-03-06 13:43] 检测点2.3 (有一个问题在末尾~)
下面3条指令执行后,CPU几次修改IP?都是在什么时候?最后IP中的值是多少?
MOV AX,BX
SUB AX,AX
JMP AX
CPU共修改了4次IP,其中3次为读取增加,1次为jmp命令改变,最后IP为0
首先我们知道读取一条指令后,IP中的值自动增加,因为有三条命令,所以IP中的值更改了三次,而执行jmp命令又使IP中的值更改了一次。
第二条命令是减法,而AX-AX=0是必然的,所以jmp ax后IP值为0
(在这我有个问题请教大家,如果jmp的寄存器中的值和读取当前指令后IP中的值相同,那还计算更改次数么?...
MOV AX,BX
SUB AX,AX
JMP AX
CPU共修改了4次IP,其中3次为读取增加,1次为jmp命令改变,最后IP为0
首先我们知道读取一条指令后,IP中的值自动增加,因为有三条命令,所以IP中的值更改了三次,而执行jmp命令又使IP中的值更改了一次。
第二条命令是减法,而AX-AX=0是必然的,所以jmp ax后IP值为0
(在这我有个问题请教大家,如果jmp的寄存器中的值和读取当前指令后IP中的值相同,那还计算更改次数么?...
阅读全文 |
评论次数(2) |
浏览次数(287) |
所属类型(汇编作业)