汇编网首页登录博客注册
fontomas的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
  •  CHERISH YOUR LIFE!
  • 『姓名』:云清                
  • 『性别』:保密  『发送消息
  • 个人说明:学问之美,在于使人一头雾水;诗歌之美,在于煽动男女出轨。
  • 详细信息『加为好友』
学习动态
好友圈
友情链接

[2008-08-27 15:59] 两个疑问,求解!

1.关于检测点11.2的疑问
执行第三条指令add AL, 90H后,AL=A0H,我算的结果是:CF=0,OF=0,SF=0,ZF=0,PF=1
我不明白的是,为什么答案里SF=1?
然后我有仔细的翻看了SF一节,对于数值运算时应该按有符号数还是无符号数有了这样的想法:
书中第204页提到:“CPU在执行add等指令时,就已经包含了两种含义,也将得到用一种信息来记录的两种结果”,因此,是不是在进行运算时, 8位寄存器的表示范围始终是[-128,127],而不是[0,255],所以才有即使AL=A0H < 255也有SF=1,但如果这样的话,那 A0H=160D>127,岂不是也会产生...
阅读全文 | 评论次数(2) | 浏览次数(1429) | 所属类型(汇编作业)

[2008-08-26 04:30] 检测点11.1

写出下面每条指令执行后,ZF、PF、SF等标志位的值。
sub al,al         ZF=1     PF=1     SF=0 
mov al,1          ZF=1     PF=1     SF=0 
push ax           ZF=1     PF=1     SF=0 
pop bx            ZF=1     PF=1     SF=0 
add al,bl         ZF=0     PF=0     SF=0 
add al,10         ZF=0     PF=1     SF=0 
mul al       ...
阅读全文 | 评论次数(3) | 浏览次数(1391) | 所属类型(汇编作业)

[2008-08-23 19:20] 实验10.3-数值显示

在这个程序中,我定义的SI和原书中的SI不同。因为我的程序中,字符串'12666'是逆序存放在以DS:0001为起始地址的内存单元中,DS:0000中的内容为0,作为结束符。除法运算结束后,SI指向'66621'后的单元,内容也为0,所以在循环读取DS:SI中的内容到显示缓冲区时,SI应先减一。

;;;*****************************************************************************
;;;子程序描述:
;;;名称:dToC
;;;功能:将word型数据转变为表示十进制数的字符串,字符串以0结尾
;;;参数:...
阅读全文 | 评论次数(2) | 浏览次数(1379) | 所属类型(汇编作业)

[2008-08-23 05:16] 实验10.2-解决除法溢出的问题

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;子程序描述:                                                                                                                       
;;;名称:divDW                                         ...
阅读全文 | 评论次数(3) | 浏览次数(1111) | 所属类型(汇编作业)

[2008-08-19 08:29] 实验10.1-显示字符串

写出来了,调试也通过了,可是依然遇到两个问题:
问题1:程序用Debug调试可以正常显示,但CMD下去什么都不显示(好像一闪而过),而在commmand.com下运行也可以正常显示。请问这是怎么回事?(不知道其他人是否也如此?)
PS. 175页实验9的程序可以正常显示。
问题2:程序中定义了SS段: dw 16 dup (0),但当sp取值 1AH 到 20H 时候,程序运行就会出错,请问这是怎么回事? 

程序如下:
assume CS:CODESG, DS:DATASG, SS:STACKSG
STACKSG SEGMENT
    dw 16 dup (0)
STAC...
阅读全文 | 评论次数(3) | 浏览次数(983) | 所属类型(汇编作业)

[2008-08-12 16:21] 检测点10.5

(1)下面程序执行后,ax中的值为多少?
assume cs:code
stack segment
      dw 8 dup (0)
stack ends

code segment
start:
      mov ax,stack
      mov ss,ax
      mov sp,16
      mov ds,ax
      mov ax,0
      call word ptr ds:[0EH]
      inc ax
      inc ax
      inc ax
   
code ends
end start 
答案:a...
阅读全文 | 评论次数(1) | 浏览次数(446) | 所属类型(汇编作业)

[2008-08-12 15:11] 检测点10.2-10.4

检测点10.2
下面的程序执行后,ax中的值为多少?
内存地址        机器码     汇编指令
1000:0          b8 00 00    mov ax, 0
1000:3          e8 01 00    call s
1000:6          40          inc ax
1000:7          58          s:pop ax
答案: ax=6
分析:call指令执行后当前IP指向下一条指令的IP,即IP=6,压入栈中,转入标号S处执行pop ax,所以ax=6


检测点10.3
下面的程序执行后,ax中...
阅读全文 | 评论次数(1) | 浏览次数(470) | 所属类型(汇编作业)

[2008-08-12 02:45] 检测点10.1

补全程序,实现从内存1000:0000H处开始执行指令。
Assume CS:codesg, SS:stacksg

stacksg segment
        db 16 dup (0)
stacksg ends

codesg segment
        start:
                mov ax, stacksg
                mov ss ,ax
                mov sp, 10H
                mov ax, ________
                push ax
                mov ax, ________
        push ax
                retf
codesg ends
end start

答案:横线1填 1000H,...
阅读全文 | 评论次数(1) | 浏览次数(407) | 所属类型(汇编作业)

[2008-08-11 23:59] 实验9

先发句牢骚:Blog老久不能发文章,搞的人都快崩溃了!
----------------------------------

分析:此题的关键就是怎么使字符在屏幕上显示,和显示的位置。
学习资料中我们知道,内存地址空间B8000H——BFFFFH为80 x 25彩色字符模式的显示缓冲区,因此,将我们要显示的数据写入B800H段中即可。屏幕共显示25行80列,因此根据显示缓冲区的段地址,可以推算出屏幕中间部分的位置。
我们还知道,一行80个字符,占160个字节,低位字节存储字符的ASCII码值,高位字节存储字符的显示属性,因此,程序中使用mov es,ax指令时,必修将字符存放在偶数...
阅读全文 | 评论次数(4) | 浏览次数(415) | 所属类型(汇编作业)

[2008-08-11 07:14] 检测点9.3

补全程序,利用loop指令,实现在内存2000段中查找第一个值为0的byte, 找到后,将它的偏移地址存储在dx中

assume cs:code
code segment 
    start:
        mov ax, 2000h
        mov ds, ax
        mov bx, 0
    s:
        mov cl, [bx]
        mov ch, 0
        ____________
        inc bx
    loop s

    ok:
        dec bx
        ...
阅读全文 | 评论次数(9) | 浏览次数(477) | 所属类型(汇编作业)
页码数(2):  1  2