assume cs:code,ds:data,es:table
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'
dd 16,22,3832,1356,2390,8000,16000,24486,50065,97479,
140417,197514...


- [younggay] 呵呵,还是看书清楚。 08/18 08:54
- [younggay] 第一题的计算中有不对的地方。博主需要重新整理一下。 08/18 08:51
- [younggay] 回答正确。 08/18 08:40
- [游客] 手写的可不行啊,不能保证程序的正确性,要自己实验一下的。要不有错误也不好指出。 08/06 15:24
- [hourace] 谢谢你的评论,这个是我手写的,自己没有编译. 08/05 13:29
- [wsrf] 程序不能通过编译。 08/04 18:54
- [tomato] 正确。 08/01 22:36
- [tomato] 正确。 08/01 22:36
- [tinyparticle] (2)第二、第三格的填写均有问题 08/01 18:55
- [tinyparticle] 可先取cx=0(cx取0-ffffh所占字节数是一样的),进debug查看程序总长度。 当mov 08/01 16:54
[2009-08-04 14:44] 实验7
阅读全文 |
评论次数(3) |
浏览次数(420) |
所属类型(汇编作业)
[2009-08-01 19:15] 实验5 (6)
assume cs:code
a segment
dw 1,2,3,4,5,6,7,8
a ends
b segment
dw 0,0,0,0,0,0,0,0
b ends
cose segment
s: mov ax,a
mov ds,ax
mov ax,b
mov ss,ax
mov sp,16
mov bx,0
mov cx,8
start: push ds:[bx]
add bx,2
loop start...
a segment
dw 1,2,3,4,5,6,7,8
a ends
b segment
dw 0,0,0,0,0,0,0,0
b ends
cose segment
s: mov ax,a
mov ds,ax
mov ax,b
mov ss,ax
mov sp,16
mov bx,0
mov cx,8
start: push ds:[bx]
add bx,2
loop start...
阅读全文 |
评论次数(1) |
浏览次数(340) |
所属类型(汇编作业)
[2009-08-01 18:39] 实验5 (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
s: mov ax,a
mov ds,ax
mov bx,0
mov dx,0
mov cx,8
start: mov dx,[bx]
add dx,[bx+16]
...
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
s: mov ax,a
mov ds,ax
mov bx,0
mov dx,0
mov cx,8
start: mov dx,[bx]
add dx,[bx+16]
...
阅读全文 |
评论次数(1) |
浏览次数(406) |
所属类型(汇编作业)
[2009-08-01 17:31] 检测点6.1
(1)
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
mov ax,4d00H
int 21H
codesg ends
end start ...
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
mov ax,4d00H
int 21H
codesg ends
end start ...
阅读全文 |
评论次数(1) |
浏览次数(603) |
所属类型(汇编作业)
[2009-07-31 19:47] 笔记
第五章 [bx]和loop指令
要完整的描述一个内存单元,需要(1)内存单元的地址(2)内存单元的长度(类型 字单元/字节单元)
[bx]表示一个内存单元,它的偏移地址在bx中。
Debug和编译器masm对“mov ax,[idata]”的解释是不同的:
Debug将它解释为“[idata]”是一个内存单元,“idata”是内存单元的偏移地址。
编译器masm将“[idata]”解释为“idata”。
以下指令在编译器masm中的含义:
Mov al,[0] ;(al)=0,将常量0送入al中(与mov al,0含义相同)
Mov al,ds:[0] ;al=...
要完整的描述一个内存单元,需要(1)内存单元的地址(2)内存单元的长度(类型 字单元/字节单元)
[bx]表示一个内存单元,它的偏移地址在bx中。
Debug和编译器masm对“mov ax,[idata]”的解释是不同的:
Debug将它解释为“[idata]”是一个内存单元,“idata”是内存单元的偏移地址。
编译器masm将“[idata]”解释为“idata”。
以下指令在编译器masm中的含义:
Mov al,[0] ;(al)=0,将常量0送入al中(与mov al,0含义相同)
Mov al,ds:[0] ;al=...
阅读全文 |
评论次数(2) |
浏览次数(358) |
所属类型(默认类型)
[2009-07-31 19:23] 实验4
(3)
assume cs:code
code segment
mov ax,code/cs
mov ds,ax
mov ax,0200H
mov es,ax
mov bx,0
mov cx,24/23
s: mov al,[bx]
mov es:[bx],al
inc bx
loop s
mov ax,4c00H
int 21H
code ends
end
复制的是内存...
assume cs:code
code segment
mov ax,code/cs
mov ds,ax
mov ax,0200H
mov es,ax
mov bx,0
mov cx,24/23
s: mov al,[bx]
mov es:[bx],al
inc bx
loop s
mov ax,4c00H
int 21H
code ends
end
复制的是内存...
阅读全文 |
评论次数(4) |
浏览次数(406) |
所属类型(汇编作业)
[2009-07-31 19:09] 实验4
(1)和(2)
assume cs:code
code segment
mov ax,0020H
mov ds,ax
mov bx,0
mov cx,64 ;0~3FH是64个数据
s: mov al,ds:[bx]
inc bx
loop s
mov ax,4c00H
int 21H
code ends
end...
assume cs:code
code segment
mov ax,0020H
mov ds,ax
mov bx,0
mov cx,64 ;0~3FH是64个数据
s: mov al,ds:[bx]
inc bx
loop s
mov ax,4c00H
int 21H
code ends
end...
阅读全文 |
评论次数(2) |
浏览次数(358) |
所属类型(汇编作业)
[2009-07-31 15:02] 笔记
段地址是放在段寄存器中的
ALT+ENTER 窗口最大化/最小化
E命令向内存中写入机器码
U命令查看内存中机器码的含义
T命令执行内存中的机器码
D命令查看内存中的内容
A命令以汇编指令的形式向内存中写入指令
R命令查看、改变CPU寄存器的内容
D命令也提供了一种符合CPU机理的格式:“D段寄存器:偏移地址”,以段寄存器中的数据为段地址SA,列出从SA:偏移地址开始的内存区间中的数据。以下是4个例子:
(1)-RDS
:1000
-DDS:0 ;查看从1000:0开始的内存区间中的内容
(2)-RDS
:1...
ALT+ENTER 窗口最大化/最小化
E命令向内存中写入机器码
U命令查看内存中机器码的含义
T命令执行内存中的机器码
D命令查看内存中的内容
A命令以汇编指令的形式向内存中写入指令
R命令查看、改变CPU寄存器的内容
D命令也提供了一种符合CPU机理的格式:“D段寄存器:偏移地址”,以段寄存器中的数据为段地址SA,列出从SA:偏移地址开始的内存区间中的数据。以下是4个例子:
(1)-RDS
:1000
-DDS:0 ;查看从1000:0开始的内存区间中的内容
(2)-RDS
:1...
阅读全文 |
评论次数(0) |
浏览次数(340) |
所属类型(默认类型)
[2009-07-31 14:59] 实验二
(1)
mov ax,ffff
mov ds,ax
mov ax,2200
mov ss,ax
mov sp,0100
mov ax,[0] ;ax=5bea
add ax,[2] ;ax=00e0
mov bx,[4] ;bx=31f0
add bx,[6] ;bx=2f32
push ax ;sp=00fe,修改的内存单元的地址是220fe内容为00e0
push bx ;sp=00fc,修改的内存单元的地址是220fc内容为2f32
pop ax ;sp=00fe ,ax=2f3...
mov ax,ffff
mov ds,ax
mov ax,2200
mov ss,ax
mov sp,0100
mov ax,[0] ;ax=5bea
add ax,[2] ;ax=00e0
mov bx,[4] ;bx=31f0
add bx,[6] ;bx=2f32
push ax ;sp=00fe,修改的内存单元的地址是220fe内容为00e0
push bx ;sp=00fc,修改的内存单元的地址是220fc内容为2f32
pop ax ;sp=00fe ,ax=2f3...
阅读全文 |
评论次数(1) |
浏览次数(381) |
所属类型(汇编作业)
[2009-07-31 12:20] 问题 (实验一的内容)
我第二个题不知道怎么做呀,可以帮忙不呀.我不知道怎么写到2000:0里面去呀.我用R改了CS和IP可是显示的还是不是这个地址呀,显示的是0CC2:0100
网友的帮忙解释:
先用a命令改写2000:0内存中的内容
-a 2000:0000
2000:0000 mov ax,1
2000:0003 add ax,ax
2000:0005 jmp 2000:0003
2000:0007
再用r命令改写CS和IP
-rcs
****
:2000
-rip
****
:0000...
网友的帮忙解释:
先用a命令改写2000:0内存中的内容
-a 2000:0000
2000:0000 mov ax,1
2000:0003 add ax,ax
2000:0005 jmp 2000:0003
2000:0007
再用r命令改写CS和IP
-rcs
****
:2000
-rip
****
:0000...
阅读全文 |
评论次数(3) |
浏览次数(322) |
所属类型(汇编作业)
『 查看更多文章 』