SUB AL,30H XOR AH,AH MOV DX,AX MOV AX,N3 CMP CX,1 JE NOT_SUM_UP MOV BL,10 MUL BL NOT_SUM_UP: ADD AX,DX MOV N3,AX INC CX CMP CX,3 JA EXIT_2 JMP LOOP_1 EXIT_2: MOV AX,N3 POP DX POP CX POP BX RET KT_SO ENDP ; XUONG_DONG PROC PUSH AX Quá trình hình thành giáo trình hướng dẫn sử dụng các hàm có sẵn trong win PUSH DX MOV AH,02 MOV DL,13 INT 21H MOV DL,10 INT 21H POP DX POP AX RET XUONG_DONG ENDP ; NHAP_LAI PROC PUSH DX LOOP2: MOV AH,08 INT 21H CMP AL,0DH JE EXIT1 CMP AL,30H JB LOOP2 CMP AL,39H JA LOOP2 MOV DL,AL MOV AH,02 INT 21H EXIT1: POP DX RET NHAP_LAI ENDP ; INSO PROC MOV BX,10 XOR CX,CX N_ZERO: XOR DX,DX DIV BX PUSH DX INC CX OR AX,AX JNZ N_ZERO INSOLOOP: POP DX ADD DL,'0' MOV AH,02 INT 21H LOOP INSOLOOP RET INSO ENDP ; CSEG ENDS END BEGIN a. Lệnh Cộng, trừ, nhân và chia a) Lệnh Cộng (ADD) Cộng nội dung của toán hạng nguồn vào toán hạng đích và đặt kết quả ngay trong toán hạng đích. Cú pháp: ADD DEST,SRC ;DEST=DEST+SRC Thí dụ: ADD AX,BX ;AX=AX+BX ADD AX,TEMP ;AX=AX+TEMP ;Temp phải là toán hạng loại word ADD SUM,BX ;SUM=SUM+BX ADD CL,10 ;CL=CL+10 ADD AX,TEMP[BX] b) Lệnh Trừ (SUB SUBtract) Mô tả: Lấy toán hạng đích trừ đi toán hạng nguồn, rồi đặt kết quả trong toán hạng đích. c) Lệnh Nhân (MUL) Kết quả của phép toán này phụ thuộc vào số lượng toán hạng được chỉ ra. Các bộ vi xử lý khác 80386và 80486 chỉ cho phép chỉ ra một với toán hạng. Nếu chỉ ra một toán hạng thì nó nhân Al, AX, hoặc EAX với toán hạng đó tương ứng với các trường hợp toán hạng là 8, 16 hay 32 bit. Và kết quả đặt trong AX hay DX:AX giống lệnh MUL. d) Lệnh Chia (DIV DIVde) Mô tả: Nếu toán hạng là giá trị loại byte, lệnh DIV lấy AX là số bị chia, đem chia cho toán hạng, phần nguyên của kết quả được đặt trong AL, phần dư được trong AH. Nếu toán hạng là giá trị loại word, lệnh DIV lấy DX:AX làm số bị chia, đem chia cho toán hạng, phần nguyên của kết quả được đặt trong AX, phần dư đặt trong DX Ví dụ tính tích hai so Tichhaiso.asm CSEG SEGMENT ASSUME CS:CSEG,DS:CSEG ORG 100H BEGIN: JMP START THONG_BAO DB "NHAP NHUNG SO NAM TRONG (0=<X<=255):$" THONG_BAO1 DB "NHAP SO THU NHAT :=$" THONG_BAO2 DB "NHAP SO THU HAI :=$" THONG_BAO3 DB "TICH HAI SO LA :=$" N1 DW 0 N2 DW 0 N3 DW 0 START: . CX POP BX RET KT_SO ENDP ; XUONG_DONG PROC PUSH AX Quá trình hình thành giáo trình hướng dẫn sử dụng các hàm có sẵn trong win PUSH DX MOV AH,02 MOV DL,13 INT 21H MOV DL,10 . đặt trong AL, phần dư được trong AH. Nếu toán hạng là giá trị loại word, lệnh DIV lấy DX:AX làm số bị chia, đem chia cho toán hạng, phần nguyên của kết quả được đặt trong AX, phần dư đặt trong. hạng thì nó nhân Al, AX, hoặc EAX với toán hạng đó tương ứng với các trường hợp toán hạng là 8, 16 hay 32 bit. Và kết quả đặt trong AX hay DX:AX giống lệnh MUL. d) Lệnh Chia (DIV DIVde) Mô