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

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新留言
好友圈
友情链接

[2012-12-07 11:33] 第11章检测题的提醒

做检测题时,遇到
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。...
阅读全文 | 评论次数(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...
阅读全文 | 评论次数(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,...
阅读全文 | 评论次数(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...
阅读全文 | 评论次数(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
    
    ;此...
阅读全文 | 评论次数(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 
   ...
阅读全文 | 评论次数(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...
阅读全文 | 评论次数(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,表...
阅读全文 | 评论次数(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...
阅读全文 | 评论次数(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...
阅读全文 | 评论次数(1) | 浏览次数(1353) | 所属类型(汇编作业)
『 查看更多文章 』