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

我的博客

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

[2009-06-10 10:29] 实验10 解决除法溢出问题

assume cs:code,ss:stack

stack segment
        dw 0,0,0,0,0,0,0,0
stack ends

code segment
        start:
        mov ax,4240h;被除数低16位
        mov dx,000fh;高16位
        mov cx,0ah;除数
        
        ;公式:X/N=int(H/N)*65536+[rem(H/N)*65536+L]/N
        ;X:被除数,范围:[0,FFFFFFFF]
        ;N:除数,范围:[0,FFFF]
        ;H:X高16位,范围:[0,FFFF]
        ;L:X低16位,范围:[0,FFFF]
        ...
阅读全文 | 评论次数(1) | 浏览次数(846) | 所属类型(汇编作业)

[2009-06-09 19:31] 试验10 显示字符串

assume cs:code,ds:data,ss:stack

stack segment
        dw 0,0,0,0,0,0,0,0
stack ends

data segment
        db 'welcome to masm!',0
data ends

code segment
        start:
        mov dh,8;行
        mov dl,3;列
        mov cl,2;颜色
        
        mov ax,data
        mov ds,ax
        
        mov si,0
        
        mov ax,stack
        mov ss,ax
        mov sp,16
        
        call show_...
阅读全文 | 评论次数(1) | 浏览次数(765) | 所属类型(汇编作业)

[2009-06-07 21:26] 实验9

DATAS SEGMENT
    db 'welcome to masm!'
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
           mov ax,datas
        mov ds,ax
        
        mov ax,0b800h ;25*80显示模式下显存的起始段地址
        mov es,ax
        mov si,0720h ;显示器中间内存单元地址
        mov bx,0
        mov cx,16
         ...
阅读全文 | 评论次数(1) | 浏览次数(727) | 所属类型(汇编作业)

[2009-02-12 21:00] 检测点6.1

(1)下面的程序实现依次用内存0:0~0:15单元中的内容改写程序中的数据,写完程序:
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   ;根据程序要求,将寄存器ax的内容放入程序的开始处 ...
阅读全文 | 评论次数(1) | 浏览次数(705) | 所属类型(汇编作业)

[2009-02-10 20:53] 实验4

(1)编程,向内存0:200~0:23F依次传送数据0~63
(2)编程,向内存0:200~0:23F依次传送数据0~63,程序中只能使用9条指令,9条指令包括"mov ax,4c00"和"int 21h"
答:
ASSUME CS:code
code SEGMENT
    
     MOV AX,0020h
     MOV DS,AX

     MOV BX,0
     MOV CX,40h

s:   MOV [BX],BL
     INC BL
     LOOP s

     MOV AX,4c00h
     INT 21h
    ...
阅读全文 | 评论次数(2) | 浏览次数(822) | 所属类型(汇编作业)

[2009-02-07 11:33] 检测点3.2

(1)补全下面的程序,使其可以将10000H~1000FH中的8个字,逆序复制到20000H~2000FH中.

答:
mov ax,1000H
mov ds,ax

mov ax,2000H
mov ss,ax
mov sp,0010H

push [0]
push [2]
push [4]
push [6]
push [8]
push [a]
push [c]
push [e]
思路:入栈先减SP,然后取数据 所以SP的值为2000F+2=20010H,取偏移地址为0010H,SS的值为2000H

(2)(1)补全下面的程序,使其可以将10000H...
阅读全文 | 评论次数(2) | 浏览次数(864) | 所属类型(汇编作业)

[2009-02-05 23:46] 检测点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 3C-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=E626H
mov ax,bx       AX=E626H
mov ax,...
阅读全文 | 评论次数(3) | 浏览次数(832) | 所属类型(汇编作业)

[2009-02-01 22:00] 检测点2.3

下面的3条指令执行后,CPU几次修改IP?都是在什么时候?最后IP的值是多少?
mov ax,bx
sub ax,ax
jmp ax
答:CPU修改了4次IP的值。
情况如下:
第1次:执行完mov ax,bx后
第2次:执行完sub ax,ax后
第3次:读入jmp ax后
第4次:执行完jmp ax后
最后IP的值为0...
阅读全文 | 评论次数(3) | 浏览次数(380) | 所属类型(汇编作业)

[2009-02-01 21:48] 检测点2.2

(1)给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为00010H到1000FH。
(2)有一数据存放在内从20000H单元中,现给定段地址为SA,若想用便宜地址寻到此单元。则SA应满足条件是:最小为1001H,最大为2000H。...
阅读全文 | 评论次数(4) | 浏览次数(352) | 所属类型(汇编作业)

[2009-02-01 21:45] 检测点2.1

(1)写出每条汇编指令执行后相关寄存器中的值
mov ax,62627     AX=F4A3H
mov ah,31H       AX=31A3H
mov al ,23H       AX=3123H
add ax,ax           AX=6246H
mov bx,826CH   BX=826CH
mov cx,ax          CX=6246H
mov ax,bx          AX=826CH
add ax,bx           AX=04D8H
mov al,bh          AX=0482H
mov ah,bl          AX=...
阅读全文 | 评论次数(2) | 浏览次数(361) | 所属类型(汇编作业)
页码数(2):  1  2