做检测题时,遇到
sub ax,ax
mov ax,5
add ax,-3
问cf及of值
这里考察的是负数的表示方法。
备注此处以提醒:
3的原码:0000 0011
3的反码:1111 1100
-3的原码:1111 1101 (负数表示为正数的反码+1)
所以上题中add ax,-3实际计算时变成
0000 0101 (5)
1111 1101 (-3)
---------------
10000 0010 (2) 第一位进位,故cf=1,而结果为2所以of=0
这里为简单,用al代替ax。...
- [sbjcm33] 原来你是把实验1和2放一起的,好办法,我怎么没想到呢,把它们分成了两个程序。 具体的内容我就不看了 12/06 01:34
- [rotapple] 却没有放入段地址,而此处要明确的是:seg code 的含义是指段地址 ============= 06/23 16:56
- [Wednesday] 分析透彻,收藏!哈哈 11/09 17:26
- [Wednesday] 公布答案了,哈哈。 11/05 23:03
- [mqmelon] 不用客气,共同进步! 11/02 10:03
- [feemess] 谢谢指点.我的下一次答题要在32个小时之后了.一直都认为第一题没错.看来.要认真看书才是 10/28 00:08
- [mqmelon] 谢谢,我会努力去做. 10/27 23:18
- [游客] mqmelon同学,你能有这样的认识首先说明你的学习态度是对的,只要有正确的学习态度,就能够学好,以 10/25 11:56
- [sunshine] 呵呵 10/25 09:49
- [mqmelon] 谢谢,十分谢谢。 10/24 17:10
[2012-12-07 11:33] 第11章检测题的提醒
阅读全文 |
评论次数(0) |
浏览次数(368) |
所属类型(汇编作业)
[2012-12-07 11:26] 第11章 实验11
这个实验似乎简单很多,不知是否符合作者的原意图呢?
assume cs:codesg
data segment
;db "Beginner's All-purpos Symbolic Instruction code.",0
db "AaBb89_*&",0
data ends
codesg segment
start:
;
mov ax,data
mov ds,ax
mov si,0
;
call letterc
;退至dos
mov ax,4c00h
int 21h
;子程序
;程序名称:lett...
assume cs:codesg
data segment
;db "Beginner's All-purpos Symbolic Instruction code.",0
db "AaBb89_*&",0
data ends
codesg segment
start:
;
mov ax,data
mov ds,ax
mov si,0
;
call letterc
;退至dos
mov ax,4c00h
int 21h
;子程序
;程序名称:lett...
阅读全文 |
评论次数(0) |
浏览次数(350) |
所属类型(汇编作业)
[2012-12-06 10:04] 第10章 实验2 完整程序
写汇编程序真不容易,调试起来更是困难。光t就不知按了多少。总算完成了。
;主程序
DATAs segment
;以下来年份数据
db '1975','1976','1977','1978','1979'
db '1980','1981','1982','1983','1984'
db '1985','1986','1987','1988','1989'
db '1990','1991','1992','1993','1994'
db '1995'
;以下为收入数据
dd 16,22,382,1356,2390
dd 8000,16000,...
;主程序
DATAs segment
;以下来年份数据
db '1975','1976','1977','1978','1979'
db '1980','1981','1982','1983','1984'
db '1985','1986','1987','1988','1989'
db '1990','1991','1992','1993','1994'
db '1995'
;以下为收入数据
dd 16,22,382,1356,2390
dd 8000,16000,...
阅读全文 |
评论次数(0) |
浏览次数(592) |
所属类型(汇编作业)
[2012-12-05 11:26] 第10章 实验2 - 非溢出除法
好几天都在想如何去做(H/N)*65536,后来看了看大家的做法,又读了几回书,才终于明白。原来(H/N)*65536就是高位。天!看来还是思维方式有问题呀。
;主程序
DATAs segment
db 'Welcom to masm!',0
DATAS ends
STACKS SEGMENT
;此处输入堆栈段代码
dw 16 dup (0)
STACKS ENDS
CODES segment
ASSUME CS:CODES,DS:DATAS,SS:STACKS
start:
MOV AX,DATAS
MO...
;主程序
DATAs segment
db 'Welcom to masm!',0
DATAS ends
STACKS SEGMENT
;此处输入堆栈段代码
dw 16 dup (0)
STACKS ENDS
CODES segment
ASSUME CS:CODES,DS:DATAS,SS:STACKS
start:
MOV AX,DATAS
MO...
阅读全文 |
评论次数(1) |
浏览次数(794) |
所属类型(汇编作业)
[2012-12-03 20:45] 第10章 实验10
第一部分:显示字符串
DATAS SEGMENT
;此处输入数据段代码
db 'Welcome to masm!',0
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
dw 16 dup (0)
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
mov ax,STACKS
mov ss,ax
;此...
DATAS SEGMENT
;此处输入数据段代码
db 'Welcome to masm!',0
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
dw 16 dup (0)
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
mov ax,STACKS
mov ss,ax
;此...
阅读全文 |
评论次数(0) |
浏览次数(415) |
所属类型(汇编作业)
[2012-12-03 11:23] 第10章检测题,第一次未通过。
错了一题:想来是下面这个错了。
对下列程序说法正确的是__。
assume cs:codesg
stack segment
dw 10 dup (0)
stack ends
codesg segment
mov ax,4c00h
int 21h
start: mov ax,stack
mov ss,ax
mov sp,20
mov ax,0
push cs
push ax
mov bx,0
retf
...
对下列程序说法正确的是__。
assume cs:codesg
stack segment
dw 10 dup (0)
stack ends
codesg segment
mov ax,4c00h
int 21h
start: mov ax,stack
mov ss,ax
mov sp,20
mov ax,0
push cs
push ax
mov bx,0
retf
...
阅读全文 |
评论次数(0) |
浏览次数(370) |
所属类型(汇编作业)
[2007-11-05 22:18] 第9章检测题
1、有如下程序段,填写2条指令,使程序在运行中将s处的一条指令复制到s0处。
assume segment
code segment
s: mov ax,bx
mov si,offset s
mov di,offset s0
_______________
_______________
s0: nop
nop
code ends
end s
1、 mov ax,cs:[si]
mov cs:[di],ax
2、 mov ax,cs:[di...
assume segment
code segment
s: mov ax,bx
mov si,offset s
mov di,offset s0
_______________
_______________
s0: nop
nop
code ends
end s
1、 mov ax,cs:[si]
mov cs:[di],ax
2、 mov ax,cs:[di...
阅读全文 |
评论次数(2) |
浏览次数(1390) |
所属类型(汇编作业)
[2007-10-27 23:18] 第7章检测题!很好,真好.
生成EXE之后用Debug加载后,查看寄存器内容如下:
ds=0b2d es=0b2d ss=0b3d cs=0b3e ip=0000
程序的起始地址的段地址是_____。
1、 0b3e
2、 0b2d
3、 0b3d
4、 0
解析:此题检测的不是本章内容,是第4章中提到的关于程序在内存中的加载问题.即,程序在内存中加载后,ds中的内容为程序在内存区的段地址,而这个内存区的偏移地址为0,故,程序所在内存区的地址:ds:0,
而内存区的前256个字节用来放置PSP的,所以程序的开始地址为sa(此时为ds值)*16+0+256,表...
ds=0b2d es=0b2d ss=0b3d cs=0b3e ip=0000
程序的起始地址的段地址是_____。
1、 0b3e
2、 0b2d
3、 0b3d
4、 0
解析:此题检测的不是本章内容,是第4章中提到的关于程序在内存中的加载问题.即,程序在内存中加载后,ds中的内容为程序在内存区的段地址,而这个内存区的偏移地址为0,故,程序所在内存区的地址:ds:0,
而内存区的前256个字节用来放置PSP的,所以程序的开始地址为sa(此时为ds值)*16+0+256,表...
阅读全文 |
评论次数(2) |
浏览次数(1200) |
所属类型(汇编作业)
[2007-10-24 20:05] 第六章检测题两次通过!真是惭愧,因为论坛帮助
assume cs:code
code segment
start: mov ax,3
jmp s1
s: mov bx,0
mov ax,bx
s1: mov cx,3
s2: add ax,2
loop s2
s3: mov ax,4c00h
int 21h
code ends
end s
上面代码执行s3处的指令之前,ax的值是_____。
1、 9
2、 6
3、 5
4...
code segment
start: mov ax,3
jmp s1
s: mov bx,0
mov ax,bx
s1: mov cx,3
s2: add ax,2
loop s2
s3: mov ax,4c00h
int 21h
code ends
end s
上面代码执行s3处的指令之前,ax的值是_____。
1、 9
2、 6
3、 5
4...
阅读全文 |
评论次数(3) |
浏览次数(965) |
所属类型(汇编作业)
[2007-10-24 17:09] 第10章检测点10.5
检测点10.5(1)
assume cs:code
stack segmeng
dw 8 dup(0)
stack ends
code segment
start:mov ax,stack
mov ss,ax
mov sp,16
mov ds,ax
mov ax,0 ;此时ax=0
call word prt ds:[0eh] ;此时,发生push ip、jmp动作,而此时ip值指向下一个指令:inc ax,而ds段此时和stack段重合,故,ds:[0eh]此时内容为刚刚压栈的IP...
assume cs:code
stack segmeng
dw 8 dup(0)
stack ends
code segment
start:mov ax,stack
mov ss,ax
mov sp,16
mov ds,ax
mov ax,0 ;此时ax=0
call word prt ds:[0eh] ;此时,发生push ip、jmp动作,而此时ip值指向下一个指令:inc ax,而ds段此时和stack段重合,故,ds:[0eh]此时内容为刚刚压栈的IP...
阅读全文 |
评论次数(1) |
浏览次数(1353) |
所属类型(汇编作业)
『 查看更多文章 』