《汇编语言》王爽第三版 - 实验10
2017-04-14 10:13
197 查看
(1)编写子程序参数 行,列,颜色,内容显示于屏幕上
(2)除法溢出处理
DATAS SEGMENT
;此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
mov ax,4240H
mov dx,000fH
mov cx,0aH
call divdw
MOV AH,4CH
INT 21H
;X/N = int(H/N)*65536 + [rem(H/N)*65536+L]/N
divdw:
push ax
mov ax,dx
mov dx,0
div cx ;(H/N) 此时 (ax)= int(H/N) (dx) = rem(H/N)
mov bx,ax ; (bx) = int(H/N)
pop ax
div cx ;[rem(H/N)*65536+L]/N 因为上一步div 相当于把 rem(H/N)* 65536 存放到高位寄存器dx 此时把L出栈存放到了低位寄存器ax
mov cx,dx ; 余数放cx ax就是结果的低16位
mov dx,bx ;int(H/N)*65536 因为dx是高位存放寄存器相当于左移16位
ret
CODES ENDS
END START
DATAS SEGMENT ;此处输入数据段代码 db 'Welcome to masm!',0 DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: mov ax,DATAS mov ds,ax ;此处输入代码段代码 mov dh,8 ;第8行 mov dl,3 ;第3列 mov cl,132 ;闪烁红色 10000100b mov si,0 call show_str MOV AH,4CH INT 21H ;第八行第三列就是 b8000h + 7*160+3*2 处开始显示 列以字为单位 show_str: mov al,dh sub ax,1 mov bl,160 mul bl push ax mov al,dl mov bl,2 mul bl pop bx add ax,bx mov bx,0b800h mov es,bx mov si,ax mov bx,0 mov ah,cl ;颜色填充ax高位 s: mov al,[bx] ;字符填充ax低位 mov es:[si],ax ;复制到现存对应位置 add bx,1 add si,2 mov cl,al jcxz ok ;遇到0结尾字符串跳出循环 jmp short s ok: ret CODES ENDS END START
(2)除法溢出处理
DATAS SEGMENT
;此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
mov ax,4240H
mov dx,000fH
mov cx,0aH
call divdw
MOV AH,4CH
INT 21H
;X/N = int(H/N)*65536 + [rem(H/N)*65536+L]/N
divdw:
push ax
mov ax,dx
mov dx,0
div cx ;(H/N) 此时 (ax)= int(H/N) (dx) = rem(H/N)
mov bx,ax ; (bx) = int(H/N)
pop ax
div cx ;[rem(H/N)*65536+L]/N 因为上一步div 相当于把 rem(H/N)* 65536 存放到高位寄存器dx 此时把L出栈存放到了低位寄存器ax
mov cx,dx ; 余数放cx ax就是结果的低16位
mov dx,bx ;int(H/N)*65536 因为dx是高位存放寄存器相当于左移16位
ret
CODES ENDS
END START
相关文章推荐
- 【汇编语言】王爽第三版----------------实验10-3
- 王爽 汇编语言 第三版 实验10 编写子程序
- 王爽《汇编语言》(第三版)实验8解析
- 《汇编语言》(第三版)王爽第十一章实验11个人方法记录
- 王爽《汇编语言》实验10:编写子程序show_str
- 《汇编语言》王爽版 实验10-1 应用举例
- 汇编语言 第三版 王爽 实验10-2 编写子程序 之 解决除法溢出问题 divdw
- 《汇编语言》(第三版)王爽第十章实验10.1个人方法记录
- 《汇编语言》 王爽版 实验10-2应用实例
- 《汇编语言》(第三版)王爽第九章实验9个人方法记录
- 《汇编语言》王爽第三版 - 实验9
- 《汇编语言》(第三版)王爽第十三章实验13.1个人方法记录
- 王爽《汇编语言》实验10:编写子程序divdw 解答
- 《汇编语言》(第三版)王爽第十二章实验12个人方法记录
- 汇编语言(王爽 第三版)实验十二
- 《汇编语言》(第三版)王爽第八章实验7个人方法记录
- 王爽《汇编语言》第10章 实验10 编写子程序
- 《汇编语言》(第三版)王爽第十章实验10.2个人方法记录
- 王爽《汇编语言》实验10:编写子程序divdw 解答
- 《汇编语言》(第三版)王爽第十章实验10.3个人方法记录